summaryrefslogtreecommitdiff
path: root/recipes/ncurses
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/ncurses
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/ncurses')
-rw-r--r--recipes/ncurses/ncurses-native_5.4.bb4
-rw-r--r--recipes/ncurses/ncurses-sdk_5.4.bb3
-rw-r--r--recipes/ncurses/ncurses.inc122
-rw-r--r--recipes/ncurses/ncurses/20030906.patch43248
-rw-r--r--recipes/ncurses/ncurses/configure.patch193
-rw-r--r--recipes/ncurses/ncurses/makefile_tweak.patch89
-rw-r--r--recipes/ncurses/ncurses/mk_shared_lib.patch27
-rw-r--r--recipes/ncurses/ncurses/run_tic.patch23
-rw-r--r--recipes/ncurses/ncurses/tic.patch19
-rw-r--r--recipes/ncurses/ncurses/visibility.patch4904
-rw-r--r--recipes/ncurses/ncurses_5.4.bb10
11 files changed, 48642 insertions, 0 deletions
diff --git a/recipes/ncurses/ncurses-native_5.4.bb b/recipes/ncurses/ncurses-native_5.4.bb
new file mode 100644
index 0000000000..310a4bb27c
--- /dev/null
+++ b/recipes/ncurses/ncurses-native_5.4.bb
@@ -0,0 +1,4 @@
+require ncurses_${PV}.bb
+inherit native
+EXTRA_OEMAKE = '"BUILD_CCFLAGS=${BUILD_CCFLAGS}"'
+DEPENDS = ""
diff --git a/recipes/ncurses/ncurses-sdk_5.4.bb b/recipes/ncurses/ncurses-sdk_5.4.bb
new file mode 100644
index 0000000000..fb69c1ec7d
--- /dev/null
+++ b/recipes/ncurses/ncurses-sdk_5.4.bb
@@ -0,0 +1,3 @@
+require ncurses_${PV}.bb
+inherit sdk
+EXTRA_OEMAKE = '"BUILD_CCFLAGS=${BUILD_CCFLAGS}"'
diff --git a/recipes/ncurses/ncurses.inc b/recipes/ncurses/ncurses.inc
new file mode 100644
index 0000000000..76a8ff0c3c
--- /dev/null
+++ b/recipes/ncurses/ncurses.inc
@@ -0,0 +1,122 @@
+DESCRIPTION = "Ncurses library"
+HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html"
+LICENSE = "MIT"
+SECTION = "libs"
+DEPENDS = "ncurses-native"
+
+inherit autotools
+
+PARALLEL_MAKE=""
+
+FILESPATH = "${FILE_DIRNAME}/local:${FILE_DIRNAME}/ncurses-${PV}-${PR}:${FILE_DIRNAME}/ncurses-${PV}:${FILE_DIRNAME}/ncurses:${FILE_DIRNAME}"
+
+EXTRA_OECONF = "\
+ --with-shared \
+ --with-libtool \
+ --without-profile \
+ --without-debug \
+ --disable-rpath \
+ --enable-echo \
+ --enable-const \
+ --without-ada \
+ --enable-termcap \
+ --without-cxx-binding \
+ --with-terminfo-dirs=${sysconfdir}/terminfo:${datadir}/terminfo \
+ --enable-overwrite \
+"
+
+export BUILD_CCFLAGS = "-I${S}/ncurses -I${S}/include ${BUILD_CFLAGS}"
+export BUILD_LDFLAGS = ""
+export EXTRA_OEMAKE = '"BUILD_LDFLAGS=" "BUILD_CCFLAGS=${BUILD_CCFLAGS}"'
+
+do_stage() {
+ autotools_stage_all
+ ln -sf curses.h ${STAGING_INCDIR}/ncurses.h
+ ln -sf libncurses.so ${STAGING_LIBDIR}/libtermcap.so
+ ln -sf libncurses.a ${STAGING_LIBDIR}/libtermcap.a
+}
+
+# This is necessary so that the "tic" command executed during the install can
+# link with the correct libary in staging.
+export LD_LIBRARY_PATH = "${STAGING_LIBDIR_NATIVE}"
+
+do_install() {
+ autotools_do_install
+
+ # our ncurses has termcap support
+ ln -sf libncurses.so ${D}${libdir}/libtermcap.so
+ ln -sf libncurses.a ${D}${libdir}/libtermcap.a
+
+ # include some basic terminfo files
+ # stolen ;) from gentoo and modified a bit
+ for x in ansi console dumb linux rxvt screen sun vt{52,100,102,200,220} xterm-color xterm-xfree86
+ do
+ local termfile="$(find "${D}${datadir}/terminfo/" -name "${x}" 2>/dev/null)"
+ local basedir="$(basename $(dirname "${termfile}"))"
+
+ if [ -n "${termfile}" ]
+ then
+ install -d ${D}${sysconfdir}/terminfo/${basedir}
+ mv ${termfile} ${D}${sysconfdir}/terminfo/${basedir}/
+ ln -s /etc/terminfo/${basedir}/${x} \
+ ${D}${datadir}/terminfo/${basedir}/${x}
+ fi
+ done
+ # i think we can use xterm-color as default xterm
+ if [ -e ${D}${sysconfdir}/terminfo/x/xterm-color ]
+ then
+ ln -sf xterm-color ${D}${sysconfdir}/terminfo/x/xterm
+ fi
+ ln -sf rxvt ${D}${sysconfdir}/terminfo/r/rxvt-unicode
+
+ if [ "${PN}" = "ncurses" ]; then
+ mv ${D}${bindir}/clear ${D}${bindir}/clear.${PN}
+ mv ${D}${bindir}/reset ${D}${bindir}/reset.${PN}
+ fi
+}
+
+
+pkg_postinst_ncurses-tools () {
+ if [ "${PN}" = "ncurses" ]; then
+ update-alternatives --install ${bindir}/clear clear clear.${PN} 100
+ update-alternatives --install ${bindir}/reset reset reset.${PN} 100
+ fi
+}
+
+
+pkg_prerm_ncurses-tools () {
+ if [ "${PN}" = "ncurses" ]; then
+ update-alternatives --remove clear clear.${PN}
+ update-alternatives --remove reset reset.${PN}
+ fi
+}
+
+PACKAGES =+ "${PN}-tools ${PN}-terminfo"
+
+# clear and reset are already in busybox
+FILES_${PN} = "\
+ ${bindir}/tput \
+ ${bindir}/tset \
+ ${libdir}/lib*.so.* \
+ ${datadir}/tabset \
+ ${sysconfdir}/terminfo \
+"
+FILES_${PN}-tools = "\
+ ${bindir}/tic \
+ ${bindir}/toe \
+ ${bindir}/infotocap \
+ ${bindir}/captoinfo \
+ ${bindir}/infocmp \
+ ${bindir}/clear.${PN} \
+ ${bindir}/reset.${PN} \
+ ${bindir}/tack \
+"
+FILES_${PN}-terminfo = "\
+ ${datadir}/terminfo \
+"
+
+RSUGGESTS_${PN} = "ncurses-terminfo"
+RPROVIDES_${PN} = "libncurses5"
+RCONFLICTS_${PN} = "libncurses5"
+RREPLACES_${PN} = "libncurses5"
+
diff --git a/recipes/ncurses/ncurses/20030906.patch b/recipes/ncurses/ncurses/20030906.patch
new file mode 100644
index 0000000000..f65dfafef1
--- /dev/null
+++ b/recipes/ncurses/ncurses/20030906.patch
@@ -0,0 +1,43248 @@
+diff -urNd -urNd ncurses-5.3/ANNOUNCE ncurses-5.3.20030906.orig/ANNOUNCE
+--- ncurses-5.3/ANNOUNCE Sat Oct 12 18:36:19 2002
++++ ncurses-5.3.20030906.orig/ANNOUNCE Tue May 13 20:08:22 2003
+@@ -23,8 +23,8 @@
+ manual pages are provided for the library and tools.
+
+ The ncurses distribution is available via anonymous FTP at the GNU
+- distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses.
+- It is also available at [2]ftp://invisible-island.net/ncurses.
++ distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ .
++ It is also available at [2]ftp://invisible-island.net/ncurses/ .
+
+ Release Notes
+
+@@ -268,60 +268,60 @@
+
+ cdk
+ Curses Development Kit
+- [3]http://invisible-island.net/cdk.
+- [4]http://www.vexus.ca/CDK.html
++ [3]http://invisible-island.net/cdk/
++ [4]http://www.vexus.ca/products/CDK/
+
+ ded
+ directory-editor
+- [5]http://invisible-island.net/ded.
++ [5]http://invisible-island.net/ded/
+
+ dialog
+ the underlying application used in Slackware's setup, and the
+ basis for similar applications on GNU/Linux.
+- [6]http://invisible-island.net/dialog.
++ [6]http://invisible-island.net/dialog/
+
+ lynx
+ the character-screen WWW browser
+- [7]http://lynx.isc.org/release.
++ [7]http://lynx.isc.org/release/
+
+ Midnight Commander
+ file manager
+- [8]www.gnome.org/mc/.
++ [8]http://www.ibiblio.org/mc/
+
+ mutt
+ mail utility
+- [9]http://www.mutt.org.
++ [9]http://www.mutt.org/
+
+ ncftp
+ file-transfer utility
+- [10]http://www.ncftp.com.
++ [10]http://www.ncftp.com/
+
+ nvi
+ New vi versions 1.50 are able to use ncurses versions 1.9.7 and
+ later.
+- [11]http://www.bostic.com/vi/.
++ [11]http://www.bostic.com/vi/
+
+ tin
+ newsreader, supporting color, MIME
+- [12]http://www.tin.org.
++ [12]http://www.tin.org/
+
+ taper
+ tape archive utility
+- [13]http://members.iinet.net.au/~yusuf/taper/.
++ [13]http://taper.e-survey.net.au/
+
+ vh-1.6
+ Volks-Hypertext browser for the Jargon File
+- [14]http://www.bg.debian.org/Packages/unstable/text/vh.html.
++ [14]http://www.debian.org/Packages/unstable/text/vh.html
+
+ as well as some that use ncurses for the terminfo support alone:
+
+ minicom
+ terminal emulator
+- [15]http://www.pp.clinet.fi/~walker/minicom.html.
++ [15]http://www.netsonic.fi/~walker/minicom.html
+
+ vile
+ vi-like-emacs
+- [16]http://invisible-island.net/vile.
++ [16]http://invisible-island.net/vile/
+
+ The ncurses distribution includes a selection of test programs
+ (including a few games).
+@@ -342,7 +342,7 @@
+ and testing of this package.
+
+ Beta versions of ncurses and patches to the current release are made
+- available at [23]ftp://invisible-island.net/ncurses.
++ available at [23]ftp://invisible-island.net/ncurses/ .
+
+ Future Plans
+
+@@ -357,35 +357,35 @@
+
+ The distribution includes and uses a version of the terminfo-format
+ terminal description file maintained by Eric Raymond.
+- [24]http://earthspace.net/~esr/terminfo.
++ [24]http://www.tuxedo.org/~esr/terminfo/ .
+
+ You can find lots of information on terminal-related topics not
+- covered in the terminfo file at [25]Richard Shuford's archive.
++ covered in the terminfo file at [25]Richard Shuford's archive .
+
+ References
+
+- 1. ftp://ftp.gnu.org/pub/gnu/ncurses
+- 2. ftp://invisible-island.net/ncurses
+- 3. http://invisible-island.net/cdk/cdk.html
+- 4. http://www.vexus.ca/CDK.html
+- 5. http://invisible-island.net/ded/ded.html
+- 6. http://invisible-island.net/dialog/dialog.html
++ 1. ftp://ftp.gnu.org/gnu/ncurses/
++ 2. ftp://invisible-island.net/ncurses/
++ 3. http://invisible-island.net/cdk/
++ 4. http://www.vexus.ca/products/CDK/
++ 5. http://invisible-island.net/ded/
++ 6. http://invisible-island.net/dialog/
+ 7. http://lynx.isc.org/release/
+- 8. file://localhost/usr/build/ncurses/ncurses-5.2-20021012/doc/html/www.gnome.org/mc/
++ 8. http://www.ibiblio.org/mc/
+ 9. http://www.mutt.org/
+ 10. http://www.ncftp.com/
+ 11. http://www.bostic.com/vi/
+ 12. http://www.tin.org/
+- 13. http://members.iinet.net.au/~yusuf/taper/
+- 14. http://www.bg.debian.org/Packages/unstable/text/vh.html
+- 15. http://www.pp.clinet.fi/~walker/minicom.html
+- 16. http://invisible-island.net/vile/vile.html
++ 13. http://taper.e-survey.net.au/
++ 14. http://www.debian.org/Packages/unstable/text/vh.html
++ 15. http://www.netsonic.fi/~walker/minicom.html
++ 16. http://invisible-island.net/vile/
+ 17. mailto:zmbenhal@netcom.com
+- 18. http://www.ccil.org/~esr/home.html
++ 18. http://www.tuxedo.org/~esr/
+ 19. mailto:dickey@herndon4.his.com
+ 20. http://www.familiepfeifer.de/Contact.aspx?Lang=en
+ 21. mailto:dickey@herndon4.his.com
+ 22. mailto:bug-ncurses@gnu.org
+- 23. ftp://invisible-island.net/ncurses
+- 24. http://earthspace.net/~esr/terminfo
++ 23. ftp://invisible-island.net/ncurses/
++ 24. http://www.tuxedo.org/~esr/terminfo/
+ 25. http://www.cs.utk.edu/~shuford/terminal_index.html
+diff -urNd -urNd ncurses-5.3/Ada95/gen/Makefile.in ncurses-5.3.20030906.orig/Ada95/gen/Makefile.in
+--- ncurses-5.3/Ada95/gen/Makefile.in Sat Jul 13 07:02:28 2002
++++ ncurses-5.3.20030906.orig/Ada95/gen/Makefile.in Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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,7 +30,7 @@
+ # Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+ #
+ # Version Control
+-# $Revision: 1.41 $
++# $Revision: 1.43 $
+ #
+ .SUFFIXES:
+
+@@ -53,6 +53,7 @@
+ AWK = @AWK@
+ LN_S = @LN_S@
+
++CC = @CC@
+ HOST_CC = @BUILD_CC@
+ CFLAGS = @CFLAGS@
+
+@@ -171,9 +172,9 @@
+ install \
+ install.libs :: $(ADA_OBJECTS)
+ @echo installing package $(ALIB) in $(ADA_OBJECTS)
+- @chmod a-wx $(ADA_SRCDIR)/*.ali
++ @-chmod a-wx $(ADA_SRCDIR)/*.ali
+ @$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ali' $(ADA_SRCDIR) $(ADA_OBJECTS)
+- @chmod u+x $(ADA_SRCDIR)/*.ali
++ @-chmod u+x $(ADA_SRCDIR)/*.ali
+
+ uninstall \
+ uninstall.libs ::
+diff -urNd -urNd ncurses-5.3/Ada95/src/Makefile.in ncurses-5.3.20030906.orig/Ada95/src/Makefile.in
+--- ncurses-5.3/Ada95/src/Makefile.in Sat Jul 13 07:02:23 2002
++++ ncurses-5.3.20030906.orig/Ada95/src/Makefile.in Tue May 13 20:08:22 2003
+@@ -30,7 +30,7 @@
+ # Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+ #
+ # Version Control
+-# $Revision: 1.26 $
++# $Revision: 1.27 $
+ #
+ .SUFFIXES:
+
+@@ -214,19 +214,19 @@
+
+
+ $(ABASE)-terminfo.o: \
+- $(ABASE)-terminfo.ads \
++ $(srcdir)/$(ABASE)-terminfo.ads \
+ $(srcdir)/$(ABASE)-terminfo.adb $(BASEDEPS)
+ $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-terminfo.adb
+
+
+ $(ABASE)-termcap.o: \
+- $(ABASE)-termcap.ads \
++ $(srcdir)/$(ABASE)-termcap.ads \
+ $(srcdir)/$(ABASE)-termcap.adb $(BASEDEPS)
+ $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-termcap.adb
+
+
+ $(ABASE)-putwin.o: \
+- $(ABASE)-putwin.ads \
++ $(srcdir)/$(ABASE)-putwin.ads \
+ $(srcdir)/$(ABASE)-putwin.adb $(BASEDEPS)
+ $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-putwin.adb
+
+diff -urNd -urNd ncurses-5.3/INSTALL ncurses-5.3.20030906.orig/INSTALL
+--- ncurses-5.3/INSTALL Sun Sep 1 17:42:11 2002
++++ ncurses-5.3.20030906.orig/INSTALL Fri Sep 12 16:42:40 2003
+@@ -1,4 +1,4 @@
+--- $Id: INSTALL,v 1.56 2002/09/01 22:42:11 tom Exp $
++-- $Id: INSTALL,v 1.65 2003/08/30 22:44:10 tom Exp $
+ ---------------------------------------------------------------------
+ How to install Ncurses/Terminfo on your system
+ ---------------------------------------------------------------------
+@@ -168,6 +168,11 @@
+ databases are SVr4-compatible, but most seem to be. Exceptions include
+ DEC's Digital Unix (formerly known as OSF/1).
+
++ If you run the test programs WITHOUT installing terminfo, ncurses may
++ read the termcap file and cache that in $HOME/.terminfo, which will
++ thereafter be used instead of the terminfo database. See the comments
++ on "--enable-getcap-cache", to see why this is a Bad Thing.
++
+ It is possible to configure ncurses to use other terminfo database formats.
+ A few are provided as examples in the include-directory (see --with-caps).
+
+@@ -312,10 +317,6 @@
+ Compile without scroll-hints code. This option is ignored when
+ hashmap scrolling is configured, which is the default.
+
+- --enable-add-ons=DIR...
+- This is used to check if this package is a glibc add-on. This is used
+- only by the glibc makefiles.
+-
+ --enable-assertions
+ For testing, compile-in assertion code. This is used only for a few
+ places where ncurses cannot easily recover by returning an error code.
+@@ -454,6 +455,11 @@
+ --enable-xmc-glitch
+ Compile-in support experimental xmc (magic cookie) code.
+
++ --with-abi-version=NUM
++ Override the ABI version, which is used in shared library filenames.
++ Normally this is the same as the release version; some ports have
++ special requirements for compatibility.
++
+ --with-ada-compiler=CMD
+ Specify the Ada95 compiler command (default "gnatmake")
+
+@@ -472,7 +478,7 @@
+
+ --with-build-cc=XXX
+ If cross-compiling, specify a host C compiler, which is needed to
+- compile a few utilties which generate source modules for ncurses.
++ compile a few utilities which generate source modules for ncurses.
+ If you do not give this option, the configure script checks if the
+ $BUILD_CC variable is set, and otherwise defaults to gcc or cc.
+
+@@ -482,7 +488,7 @@
+ host compiler.
+
+ --with-build-cppflags=XXX
+- If cross-compiling, specify the host C preprocesor-flags. You might
++ If cross-compiling, specify the host C preprocessor-flags. You might
+ need to do this if the target compiler has unusual flags which confuse
+ the host compiler.
+
+@@ -544,9 +550,17 @@
+ NOTE: a few systems build shared libraries with fixed pathnames; this
+ option probably will not work for those configurations.
+
+- --with-libtool
+- Generate libraries with libtool. If this option is selected, then
+- it overrides all other library model specifications.
++ --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,
++ and does not promise to follow the version numbering convention of
++ other shared libraries on your system. However, if the --with-shared
++ option does not succeed, you may get better results with this option.
++
++ If a parameter value is given, it must be the full pathname of the
++ particular version of libtool, e.g.,
++ /usr/bin/libtool-1.2.3
+
+ --with-manpage-format=XXX
+ Tell the configure script how you would like to install man-pages. The
+@@ -609,6 +623,9 @@
+ This is normally chosen automatically based on the type of system
+ which you are building on. We use it for testing the configure script.
+
++ --with-sysmouse
++ use FreeBSD sysmouse interface provide mouse support on the console.
++
+ --with-system-type=XXX
+ For testing, override the derived host system-type which is used to
+ decide things such as the linker commands used to build shared
+@@ -673,7 +690,7 @@
+ you may encounter when building a system with different versions of
+ ncurses:
+
+- 5.3 (pre-release)
++ 5.3 (October 12, 2002)
+ Interface changes:
+
+ + change type for bool used in headers to NCURSES_BOOL, which usually
+@@ -895,31 +912,34 @@
+ IF YOU ARE A SYSTEM INTEGRATOR:
+ ------------------------------
+
+- Beginning with 1.9.9, the ncurses distribution includes both a tset
+- utility and /usr/share/tabset directory. If you are installing ncurses,
+- it is no longer either necessary or desirable to install tset-jv.
+-
+ Configuration and Installation:
+
+- Configure with --prefix=/usr to make the install productions put
+- libraries and headers in the correct locations (overwriting any
+- previous curses libraries and headers). This will put the terminfo
+- hierarchy under /usr/share/terminfo; you may want to override this with
+- --datadir=/usr/share/misc; terminfo and tabset are installed under the
+- data directory.
++ On platforms where ncurses is assumed to be installed in /usr/lib,
++ the configure script uses "/usr" as a default:
+
+- Please configure the ncurses library in a pure-terminfo mode; that
+- is, with the --disable-termcap option. This will make the ncurses
+- library smaller and faster. The ncurses library includes a termcap
+- emulation that queries the terminfo database, so even applications
+- that use raw termcap to query terminal characteristics will win
+- (providing you recompile and relink them!).
++ Linux, FreeBSD, NetBSD, OpenBSD, Cygwin
+
+- If you must configure with termcap fallback enabled, you may also
+- wish to use the --enable-getcap option. This option speeds up
+- termcap-based startups, at the expense of not allowing personal
+- termcap entries to reference the terminfo tree. See the code in
+- ncurses/tinfo/read_termcap.c for details.
++ For other platforms, the default is "/usr/local". See the discussion
++ of the "--disable-overwrite" option.
++
++ The location of the terminfo is set indirectly by the "--datadir"
++ configure option, e.g., /usr/share/terminfo, given a datadir of
++ /usr/share. You may want to override this if you are installing
++ ncurses libraries in nonstandard locations, but wish to share the
++ terminfo database.
++
++ Normally the ncurses library is configured in a pure-terminfo mode;
++ that is, with the --disable-termcap option. This makes the ncurses
++ library smaller and faster. The ncurses library includes a termcap
++ emulation that queries the terminfo database, so even applications that
++ use raw termcap to query terminal characteristics will win (providing
++ you recompile and relink them!).
++
++ If you must configure with termcap fallback enabled, you may also wish
++ to use the --enable-getcap option. This speeds up termcap-based
++ startups, at the expense of not allowing personal termcap entries to
++ reference the terminfo tree. See comments in
++ ncurses/tinfo/read_termcap.c for further details.
+
+ Note that if you have $TERMCAP set, ncurses will use that value
+ to locate termcap data. In particular, running from xterm will
+@@ -939,11 +959,11 @@
+
+ Naming the Console Terminal
+
+- In various Linuxes (and possibly elsewhere) there has been a practice
+- of designating the system console driver type as `console'. Please
+- do not do this any more! It complicates peoples' lives, because it
+- can mean that several different terminfo entries from different
+- operating systems all logically want to be called `console'.
++ In various systems there has been a practice of designating the system
++ console driver type as `console'. Please do not do this! It
++ complicates peoples' lives, because it can mean that several different
++ terminfo entries from different operating systems all logically want to
++ be called `console'.
+
+ Please pick a name unique to your console driver and set that up
+ in the /etc/inittab table or local equivalent. Send the entry to the
+diff -urNd -urNd ncurses-5.3/MANIFEST ncurses-5.3.20030906.orig/MANIFEST
+--- ncurses-5.3/MANIFEST Sun Sep 1 17:08:22 2002
++++ ncurses-5.3.20030906.orig/MANIFEST Sun Jul 20 14:02:09 2003
+@@ -166,13 +166,11 @@
+ ./Ada95/src/terminal_interface.ads
+ ./INSTALL
+ ./MANIFEST
+-./Makefile.glibc
+ ./Makefile.in
+ ./Makefile.os2
+ ./NEWS
+ ./README
+ ./README.emx
+-./README.glibc
+ ./TO-DO
+ ./aclocal.m4
+ ./announce.html.in
+@@ -394,6 +392,7 @@
+ ./doc/html/man/form_win.3x.html
+ ./doc/html/man/infocmp.1m.html
+ ./doc/html/man/infotocap.1m.html
++./doc/html/man/key_defined.3x.html
+ ./doc/html/man/keybound.3x.html
+ ./doc/html/man/keyok.3x.html
+ ./doc/html/man/menu.3x.html
+@@ -593,6 +592,7 @@
+ ./man/form_win.3x
+ ./man/infocmp.1m
+ ./man/infotocap.1m
++./man/key_defined.3x
+ ./man/keybound.3x
+ ./man/keyok.3x
+ ./man/make_sed.sh
+@@ -673,6 +673,7 @@
+ ./misc/chkdef.cmd
+ ./misc/cleantic.cmd
+ ./misc/cmpdef.cmd
++./misc/csort
+ ./misc/emx.src
+ ./misc/form.def
+ ./misc/form.ref
+@@ -706,6 +707,7 @@
+ ./ncurses/base/MKunctrl.awk
+ ./ncurses/base/README
+ ./ncurses/base/define_key.c
++./ncurses/base/key_defined.c
+ ./ncurses/base/keybound.c
+ ./ncurses/base/keyok.c
+ ./ncurses/base/lib_addch.c
+@@ -736,7 +738,6 @@
+ ./ncurses/base/lib_initscr.c
+ ./ncurses/base/lib_insch.c
+ ./ncurses/base/lib_insdel.c
+-./ncurses/base/lib_insstr.c
+ ./ncurses/base/lib_instr.c
+ ./ncurses/base/lib_isendwin.c
+ ./ncurses/base/lib_leaveok.c
+@@ -861,6 +862,7 @@
+ ./ncurses/tty/tty_display.h
+ ./ncurses/tty/tty_input.h
+ ./ncurses/tty/tty_update.c
++./ncurses/widechar/charable.c
+ ./ncurses/widechar/lib_box_set.c
+ ./ncurses/widechar/lib_cchar.c
+ ./ncurses/widechar/lib_erasewchar.c
+@@ -869,9 +871,9 @@
+ ./ncurses/widechar/lib_hline_set.c
+ ./ncurses/widechar/lib_in_wch.c
+ ./ncurses/widechar/lib_in_wchnstr.c
+-./ncurses/widechar/lib_ins_nwstr.c
+ ./ncurses/widechar/lib_ins_wch.c
+ ./ncurses/widechar/lib_inwstr.c
++./ncurses/widechar/lib_slk_wset.c
+ ./ncurses/widechar/lib_unget_wch.c
+ ./ncurses/widechar/lib_vid_attr.c
+ ./ncurses/widechar/lib_vline_set.c
+@@ -913,12 +915,6 @@
+ ./progs/toe.c
+ ./progs/tput.c
+ ./progs/tset.c
+-./sysdeps/unix/sysv/linux/Makefile
+-./sysdeps/unix/sysv/linux/alpha/configure
+-./sysdeps/unix/sysv/linux/configure
+-./sysdeps/unix/sysv/linux/edit_man.sed
+-./sysdeps/unix/sysv/linux/edit_man.sh
+-./sysdeps/unix/sysv/linux/run_tic.sh
+ ./tack/COPYING
+ ./tack/HISTORY
+ ./tack/Makefile.in
+@@ -945,6 +941,7 @@
+ ./tar-copy.sh
+ ./test/Makefile.in
+ ./test/README
++./test/aclocal.m4
+ ./test/blue.c
+ ./test/bs.6
+ ./test/bs.c
+@@ -952,8 +949,15 @@
+ ./test/cardfile.dat
+ ./test/configure
+ ./test/configure.in
++./test/demo_defkey.c
++./test/demo_forms.c
++./test/demo_keyok.c
++./test/demo_menus.c
++./test/demo_panels.c
+ ./test/ditto.c
+ ./test/dots.c
++./test/edit_field.c
++./test/edit_field.h
+ ./test/filter.c
+ ./test/firework.c
+ ./test/firstlast.c
+@@ -961,8 +965,11 @@
+ ./test/gdc.c
+ ./test/hanoi.c
+ ./test/hashtest.c
++./test/ins_wide.c
++./test/inserts.c
+ ./test/keynames.c
+ ./test/knight.c
++./test/listused.sh
+ ./test/lrtest.c
+ ./test/modules
+ ./test/ncurses.c
+diff -urNd -urNd ncurses-5.3/NEWS ncurses-5.3.20030906.orig/NEWS
+--- ncurses-5.3/NEWS Sat Oct 12 17:35:42 2002
++++ ncurses-5.3.20030906.orig/NEWS Fri Sep 12 16:42:59 2003
+@@ -1,4 +1,4 @@
+--- $Id: NEWS,v 1.714 2002/10/12 22:35:42 tom Exp $
++-- $Id: NEWS,v 1.766 2003/09/06 22:40:56 tom Exp $
+
+ This is a log of changes that ncurses has gone through since Zeyd started
+ working with Pavel Curtis' original work, pcurses, in 1992.
+@@ -6,6 +6,531 @@
+ Changes through 1.9.9e are recorded by Zeyd M. Ben-Halim.
+ Changes since 1.9.9e are recorded by Thomas Dickey.
+
++20030906
++ + modify configure script to avoid using "head -1", which does not
++ work if POSIXLY_CORRECT (sic) is set.
++ + modify run_tic.in to avoid using wrong shared libraries when
++ cross-compiling (Dan Kegel).
++
++20030830
++ + alter configure script help message to make it clearer that
++ --with-build-cc does not specify a cross-compiler (suggested by Dan
++ Kegel <dank@kegel.com>).
++ + modify configure script to accommodate libtool 1.5, as well as add an
++ parameter to the "--with-libtool" option which can specify the
++ pathname of libtool (report by Chris Zubrzycki). We note that
++ libtool 1.5 has more than one bug in its C++ support, so it is not
++ able to install libncurses++, for instance, if $DESTDIR or the option
++ --with-install-prefix is used.
++
++20030823
++ > Philippe Blain:
++ + move assignments to SP->_cursrow, SP->_curscol into online_mvcur().
++ + make baudrate computation in delay_output() consistent with the
++ assumption in _nc_mvcur_init(), i.e., a byte is 9 bits.
++
++20030816
++ + modify logic in waddch_literal() to take into account zh_TW.Big5
++ whose multibyte sequences may contain "printable" characters, e.g.,
++ a "g" in the sequence "\247g" (Debian #204889, cf: 20030621).
++ + improve storage used by _nc_safe_strcpy() by ensuring that the size
++ is reset based on the initialization call, in case it were called
++ after other strcpy/strcat calls (report by Philippe Blain).
++ > Philippe Blain:
++ + remove an unused ifdef for REAL_ATTR & WANT_CHAR
++ + correct a place where _cup_cost was used rather than _cuu_cost
++
++20030809
++ + fix a small memory leak in _nc_free_termtype().
++ + close trace-file if trace() is called with a zero parameter.
++ + free memory allocated for soft-key strings, in delscreen().
++ + fix an allocation size in safe_sprintf.c for the "*" format code.
++ + correct safe_sprintf.c to not return a null pointer if the format
++ happens to be an empty string. This applies to the "configure
++ --enable-safe-sprintf" option (Redhat #101486).
++
++20030802
++ + modify casts used for ABSENT_BOOLEAN and CANCELLED_BOOLEAN (report by
++ Daniel Jacobowitz).
++ > Philippe Blain:
++ + change padding for change_scroll_region to not be proportional to
++ the size of the scroll-region.
++ + correct error-return in _nc_safe_strcat().
++
++20030726
++ + correct limit-checks in _nc_scroll_window() (report and test-case by
++ Thomas Graf <graf@dms.at> cf: 20011020).
++ + re-order configure checks for _XOPEN_SOURCE to avoid conflict with
++ _GNU_SOURCE check.
++
++20030719
++ + use clr_eol in preference to blanks for bce terminals, so select and
++ paste will have fewer trailing blanks, e.g., when using xterm
++ (request by Vincent Lefevre).
++ + correct prototype for wunctrl() in manpage.
++ + add configure --with-abi-version option (discussion with Charles
++ Wilson).
++ > cygwin changes from Charles Wilson:
++ + aclocal.m4: on cygwin, use autodetected prefix for import
++ and static lib, but use "cyg" for DLL.
++ + include/ncurses_dll.h: correct the comments to reflect current
++ status of cygwin/mingw port. Fix compiler warning.
++ + misc/run_tic.in: ensure that tic.exe can find the uninstalled
++ DLL, by adding the lib-directory to the PATH variable.
++ + misc/terminfo.src (nxterm|xterm-color): make xterm-color
++ primary instead of nxterm, to match XFree86's xterm.terminfo
++ usage and to prevent circular links.
++ (rxvt): add additional codes from rxvt.org.
++ (rxvt-color): new alias
++ (rxvt-xpm): new alias
++ (rxvt-cygwin): like rxvt, but with special acsc codes.
++ (rxvt-cygwin-native): ditto. rxvt may be run under XWindows, or
++ with a "native" MSWin GUI. Each takes different acsc codes,
++ which are both different from the "normal" rxvt's acsc.
++ (cygwin): cygwin-in-cmd.exe window. Lots of fixes.
++ (cygwinDBG): ditto.
++ + mk-1st.awk: use "cyg" for the DLL prefix, but "lib" for import
++ and static libs.
++
++20030712
++ + update config.guess, config.sub
++ + add triples for configuring shared libraries with the Debian
++ GNU/FreeBSD packages (patch by Robert Millan <zeratul2@wanadoo.es>).
++
++20030705
++ + modify CF_GCC_WARNINGS so it only applies to gcc, not g++. Some
++ platforms have installed g++ along with the native C compiler, which
++ would not accept gcc warning options.
++ + add -D_XOPEN_SOURCE=500 when configuring with --enable-widec, to
++ get mbstate_t declaration on HPUX 11.11 (report by David Ellement).
++ + add _nc_pathlast() to get rid of casts in _nc_basename() calls.
++ + correct a sign-extension in wadd_wch() and wecho_wchar() from
++ 20030628 (report by Tomohiro KUBOTA).
++ + work around omission of btowc() and wctob() from wide-character
++ support (sic) in NetBSD 1.6 using mbtowc() and wctomb() (report by
++ Gabor Z Papp).
++ + add portability note to curs_get_wstr.3x (Debian #199957).
++
++20030628
++ + rewrite wadd_wch() and wecho_wchar() to call waddch() and wechochar()
++ respectively, to avoid calling waddch_noecho() with wide-character
++ data, since that function assumes its input is 8-bit data.
++ Similarly, modify waddnwstr() to call wadd_wch().
++ + remove logic from waddnstr() which transformed multibyte character
++ strings into wide-characters. Rewrite of waddch_literal() from
++ 20030621 assumes its input is raw multibyte data rather than wide
++ characters (report by Tomohiro KUBOTA).
++
++20030621
++ + write getyx() and related 2-return macros in terms of getcury(),
++ getcurx(), etc.
++ + modify waddch_literal() in case an application passes bytes of a
++ multibyte character directly to waddch(). In this case, waddch()
++ must reassemble the bytes into a wide-character (report by Tomohiro
++ KUBOTA <kubota@debian.org>).
++
++20030614
++ + modify waddch_literal() in case a multibyte value occupies more than
++ two cells.
++ + modify PutAttrChar() to compute the number of character cells that
++ are used in multibyte values. This fixes a problem displaying
++ double-width characters (report/test by Mitsuru Chinen
++ <mchinen@yamato.ibm.com>).
++ + add a null-pointer check for result of keyname() in _tracechar()
++ + modify _tracechar() to work around glibc sprintf bug.
++
++20030607
++ + add a call to setlocale() in cursesmain.cc, making demo display
++ properly in a UTF-8 locale.
++ + add a fallback definition in curses.priv.h for MB_LEN_MAX (prompted
++ by discussion with Gabor Z Papp).
++ + use macros NCURSES_ACS() and NCURSES_WACS() to hide cast needed to
++ appease -Wchar-subscript with g++ 3.3 (Debian #195732).
++ + fix a redefinition of $RANLIB in the configure script when libtool
++ is used, which broke configure on Mac OS X (report by Chris Zubrzycki
++ <beren@mac.com>).
++ + simplify ifdef for bool declaration in curses.h.in (suggested by
++ Albert Chin-A-Young).
++ + remove configure script check to allow -Wconversion for older
++ versions of gcc (suggested by Albert Chin-A-Young).
++
++20030531
++ + regenerated html manpages.
++ + modify ifdef's in curses.h.in that disabled use of __attribute__()
++ for g++, since recent versions implement the cases which ncurses uses
++ (Debian #195230).
++ + modify _nc_get_token() to handle a case where an entry has no
++ description, and capabilities begin on the same line as the entry
++ name.
++ + fix a typo in ncurses_dll.h reported by gcc 3.3.
++ + add an entry for key_defined.3x to man_db.renames.
++
++20030524
++ + modify setcchar() to allow converting control characters to complex
++ characters (report/test by Mitsuru Chinen <mchinen@yamato.ibm.com>).
++ + add tkterm entry -TD
++ + modify parse_entry.c to allow a terminfo entry with a leading
++ 2-character name (report by Don Libes).
++ + corrected acsc in screen.teraterm, which requires a PC-style mapping.
++ + fix trace statements in read_entry.c to use lseek() rather than
++ tell().
++ + fix signed/unsigned warnings from Sun's compiler (gcc should give
++ these warnings, but it is unpredictable).
++ + modify configure script to omit -Winline for gcc 3.3, since that
++ feature is broken.
++ + modify manlinks.sed to add a few functions that were overlooked since
++ they return function pointers: field_init, field_term, form_init,
++ form_term, item_init, item_term, menu_init and menu_term.
++
++20030517
++ + prevent recursion in wgetch() via wgetnstr() if the connection cannot
++ be switched between cooked/raw modes because it is not a TTY (report
++ by Wolfgang Gutjahr <gutw@knapp.com>).
++ + change parameter of define_key() and key_defined() to const (prompted
++ by Debian #192860).
++ + add a check in test/configure for ncurses extensions, since there
++ are some older versions, etc., which would not compile with the
++ current test programs.
++ + corrected demo in test/ncurses.c of wgetn_wstr(), which did not
++ convert wchar_t string to multibyte form before printing it.
++ + corrections to lib_get_wstr.c:
++ + null-terminate buffer passed to setcchar(), which occasionally
++ failed.
++ + map special characters such as erase- and kill-characters into
++ key-codes so those will work as expected even if they are not
++ mentioned in the terminfo.
++ + modify PUTC() and Charable() macros to make wide-character line
++ drawing work for POSIX locale on Linux console (cf: 20021221).
++
++20030510
++ + make typography for program options in manpages consistent (report
++ by Miloslav Trmac <mitr@volny.cz>).
++ + correct dependencies in Ada95/src/Makefile.in, so the builds with
++ "--srcdir" work (report by Warren L Dodge).
++ + correct missing definition of $(CC) in Ada95/gen/Makefile.in
++ (reported by Warren L Dodge <warrend@mdhost.cse.tek.com>).
++ + fix typos and whitespace in manpages (patch by jmc
++ <jmc@prioris.mini.pw.edu.pl>).
++
++20030503
++ + fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR,
++ REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at
++ the editing position before making modifications.
++ + add test/demo_forms and associated test/edit_field.c demos.
++ + modify test/configure.in to use test/modules for the list of objects
++ to compile rather than using the list of programs.
++
++20030419
++ + modify logic of acsc to use the original character if no mapping is
++ defined, noting that Solaris does this.
++ + modify ncurses 'b' test to avoid using the acs_map[] array since
++ 20021231 changes it to no longer contain information from the acsc
++ string.
++ + modify makefile rules in c++, progs, tack and test to ensure that
++ the compiler flags (e.g., $CFLAGS or $CCFLAGS) are used in the link
++ command (report by Jose Luis Rico Botella <informatica@serpis.com>).
++ + modify soft-key initialization to use A_REVERSE if A_STANDOUT would
++ not be shown when colors are used, i.e., if ncv#1 is set in the
++ terminfo as is done in "screen".
++
++20030412
++ + add a test for slk_color(), in ncurses.c
++ + fix some issues reported by valgrind in the slk_set() and slk_wset()
++ code, from recent rewrite.
++ + modify ncurses 'E' test to use show previous label via slk_label(),
++ as in 'e' test.
++ + modify wide-character versions of NewChar(), NewChar2() macros to
++ ensure that the whole struct is initialized.
++
++20030405
++ + modify setupterm() to check if the terminfo and terminal-modes have
++ already been read. This ensures that it does not reinvoke
++ def_prog_mode() when an application calls more than one function,
++ such as tgetent() and initscr() (report by Olaf Buddenhagen).
++
++20030329
++ + add 'E' test to ncurses.c, to exercise slk_wset().
++ + correct handling of carriage-return in wgetn_wstr(), used in demo of
++ slk_wset().
++ + first draft of slk_wset() function.
++
++20030322
++ + improved warnings in tic when suppressing items to fit in termcap's
++ 1023-byte limit.
++ + built a list in test/README showing which externals are being used
++ by either programs in the test-directory or via internal library
++ calls.
++ + adjust include-options in CF_ETIP_DEFINES to avoid missing
++ ncurses_dll.h, fixing special definitions that may be needed for
++ etip.h (reported by Greg Schafer <gschafer@zip.com.au>).
++
++20030315
++ + minor fixes for cardfile.c, to make it write the updated fields to
++ a file when ^W is given.
++ + add/use _nc_trace_bufcat() to eliminate some fixed buffer limits in
++ trace code.
++
++20030308
++ + correct a case in _nc_remove_string(), used by define_key(), to avoid
++ infinite loop if the given string happens to be a substring of other
++ strings which are assigned to keys (report by John McCutchan).
++ + add key_defined() function, to tell which keycode a string is bound
++ to (discussion with John McCutchan <ttb@tentacle.dhs.org>).
++ + correct keybound(), which reported definitions in the wrong table,
++ i.e., the list of definitions which are disabled by keyok().
++ + modify demo_keydef.c to show the details it changes, and to check
++ for errors.
++
++20030301
++ + restructured test/configure script, make it work for libncursesw.
++ + add description of link_fieldtype() to manpage (report by
++ L Dee Holtsclaw <dee@sunbeltsoft.com>).
++
++20030222
++ + corrected ifdef's relating to configure check for wchar_t, etc.
++ + if the output is a socket or other non-tty device, use 1 millisecond
++ for the cost in mvcur; previously it was 9 milliseconds because the
++ baudrate was not known.
++ + in _nc_get_tty_mode(), initialize the TTY buffer on error, since
++ glibc copies uninitialized data in that case, as noted by valgrind.
++ + modify tput to use the same parameter analysis as tparm() does, to
++ provide for user-defined strings, e.g., for xterm title, a
++ corresponding capability might be
++ title=\E]2;%p1%s^G,
++ + modify MKlib_gen.sh to avoid passing "#" tokens through the C
++ preprocessor. This works around Mac OS X's preprocessor, which
++ insists on adding a blank on each side of the token (report/analysis
++ by Kevin Murphy <murphy@genome.chop.edu>).
++
++20030215
++ + add configure check for wchar_t and wint_t types, rather than rely
++ on preprocessor definitions. Also work around for gcc fixinclude
++ bug which creates a shadow copy of curses.h if it sees these symbols
++ apparently typedef'd.
++ + if database is disabled, do not generate run_tic.sh
++ + minor fixes for memory-leak checking when termcap is read.
++
++20030208
++ + add checking in tic for incomplete line-drawing character mapping.
++ + update configure script to reflect fix for AC_PROG_GCC_TRADITIONAL,
++ which is broken in autoconf 2.5x for Mac OS X 10.2.3 (report by
++ Gerben Wierda <Sherlock@rna.nl>).
++ + make return value from _nc_printf_string() consistent. Before,
++ depending on whether --enable-safe-sprintf was used, it might not be
++ cached for reallocating.
++
++20030201
++ + minor fixes for memory-leak checking in lib_tparm.c, hardscroll.c
++ + correct a potentially-uninitialized value if _read_termtype() does
++ not read as much data as expected (report by Wolfgang Rohdewald
++ <wr6@uni.de>).
++ + correct several places where the aclocal.m4 macros relied on cache
++ variable names which were incompatible (as usual) between autoconf
++ 2.13 and 2.5x, causing the test for broken-linker to give incorrect
++ results (reports by Gerben Wierda <Sherlock@rna.nl> and Thomas Esser
++ <te@dbs.uni-hannover.de>).
++ + do not try to open gpm mouse driver if standard output is not a tty;
++ the gpm library does not make this check (from bug report for dialog
++ by David Oliveira <davidoliveira@develop.prozone.ws>).
++
++20030125
++ + modified emx.src to correspond more closely to terminfo.src, added
++ emx-base to the latter -TD
++ + add configure option for FreeBSD sysmouse, --with-sysmouse, and
++ implement support for that in lib_mouse.c, lib_getch.c
++
++20030118
++ + revert 20030105 change to can_clear_with(), does not work for the
++ case where the update is made on cells which are blanks with
++ attributes, e.g., reverse.
++ + improve ifdef's to guard against redefinition of wchar_t and wint_t
++ in curses.h (report by Urs Jansen).
++
++20030111
++ + improve mvcur() by checking if it is safe to move when video
++ attributes are set (msgr), and if not, reset/restore attributes
++ within that function rather than doing it separately in the GoTo()
++ function in tty_update.c (suggested by Philippe Blain).
++ + add a message in run_tic.in to explain more clearly what does not
++ work when attempting to create a symbolic link for /usr/lib/terminfo
++ on OS/2 and other platforms with no symbolic links (report by John
++ Polterak).
++ + change several sed scripts to avoid using "\+" since it is not a BRE
++ (basic regular expression). One instance caused terminfo.5 to be
++ misformatted on FreeBSD (from a FreeBSD bug report by Kazuo Horikawa
++ <horikawa@FreeBSD.org>).
++ + correct misspelled 'wint_t' in curs_get_wch.3x (Michael Elkins).
++
++20030105
++ + improve description of terminfo operators, especially static/dynamic
++ variables (comments by Mark I Manning IV <mark4th@earthlink.net>).
++ + demonstrate use of FIELDTYPE by modifying test/ncurses 'r' test to
++ use the predefined TYPE_ALPHA field-type, and by defining a
++ specialized type for the middle initial/name.
++ + fix MKterminfo.sh, another workaround for POSIXLY_CORRECT misfeature
++ of sed 4.0
++ > Philippe Blain:
++ + optimize can_clear_with() a little by testing first if the parameter
++ is indeed a "blank".
++ + simplify ClrBottom() a little by allowing it to use clr_eos to clear
++ sections as small as one line.
++ + improve ClrToEOL() by checking if clr_eos is available before trying
++ to use it.
++ + use tputs() rather than putp() in a few cases in tty_update.c since
++ the corresponding delays are proportional to the number of lines
++ affected: repeat_char, clr_eos, change_scroll_region.
++
++20021231
++ + rewrite of lib_acs.c conflicts with copying of SCREEN acs_map to/from
++ global acs_map[] array; removed the lines that did the copying.
++
++20021228
++ + change some overlooked tputs() calls in scrolling code to use putp()
++ (report by Philippe Blain).
++ + modify lib_getch.c to avoid recursion via wgetnstr() when the input
++ is not a tty and consequently mode-changes do not work (report by
++ <R.Chamberlin@querix.com>).
++ + rewrote lib_acs.c to allow PutAttrChar() to decide how to render
++ alternate-characters, i.e., to work with Linux console and UTF-8
++ locale.
++ + correct line/column reference in adjust_window(), needed to make
++ special windows such as curscr track properly when resizing (report
++ by Lucas Gonze <lgonze@panix.com>).
++ > Philippe Blain:
++ + correct the value used for blank in ClrBottom() (broken in 20000708).
++ + correct an off-by-one in GoTo() parameter in _nc_scrolln().
++
++20021221
++ + change several tputs() calls in scrolling code to use putp(), to
++ enable padding which may be needed for some terminals (patch by
++ by Philippe Blain).
++ + use '%' as sed substitute delimiter in run_tic script to avoid
++ problems with pathname delimiters such as ':' and '@' (report by John
++ Polterak).
++ + implement a workaround so that line-drawing works with screen's
++ crippled UTF-8 support (tested with 3.9.13). This only works with
++ the wide-character support (--enable-widec); the normal library will
++ simply suppress line-drawing when running in a UTF-8 locale in screen.
++
++20021214
++ + allow BUILD_CC and related configure script variables to be
++ overridden from the environment.
++ + make build-tools variables in ncurses/Makefile.in consistent with
++ the configure script variables (report by Maciej W Rozycki).
++ + modify ncurses/modules to allow
++ configure --disable-leaks --disable-ext-funcs
++ to build (report by Gary Samuelson).
++ + fix a few places in configure.in which lacked quotes (report by
++ Gary Samuelson <gary.samuelson@verizon.com>).
++ + correct handling of multibyte characters in waddch_literal() which
++ force wrapping because they are started too late on the line (report
++ by Sam Varshavchik).
++ + small fix for CF_GNAT_VERSION to ignore the help-message which
++ gnatmake adds to its version-message.
++ > Maciej W Rozycki <macro@ds2.pg.gda.pl>:
++ + use AC_CHECK_TOOL to get proper values for AR and LD for cross
++ compiling.
++ + use $cross_compiling variable in configure script rather than
++ comparing $host_alias and $target alias, since "host" is
++ traditionally misused in autoconf to refer to the target platform.
++ + change configure --help message to use "build" rather than "host"
++ when referring to the --with-build-XXX options.
++
++20021206
++ + modify CF_GNAT_VERSION to print gnatmake's version, and to allow for
++ possible gnat versions such as 3.2 (report by Chris Lingard
++ <chris@stockwith.co.uk>).
++ + modify #define's for CKILL and other default control characters in
++ tset to use the system's default values if they are defined.
++ + correct interchanged defaults for kill and interrupt characters
++ in tset, which caused it to report unnecessarily (Debian #171583).
++ + repair check for missing C++ compiler, which is broken in autoconf
++ 2.5x by hardcoding it to g++ (report by Martin Mokrejs).
++ + update config.guess, config.sub (2002-11-30)
++ + modify configure script to skip --with-shared, etc., when the
++ --with-libtool option is given, since they would be ignored anyway.
++ + fix to allow "configure --with-libtool --with-termlib" to build.
++ + modify configure script to show version number of libtool, to help
++ with bug reports. libtool still gets confused if the installed
++ ncurses libraries are old, since it ignores the -L options at some
++ point (tested with libtool 1.3.3 and 1.4.3).
++ + reorder configure script's updating of $CPPFLAGS and $CFLAGS to
++ prevent -I options in the user's environment from introducing
++ conflicts with the build -I options (may be related to reports by
++ Patrick Ash and George Goffe).
++ + rename test/define_key.c to test/demo_defkey.c, test/keyok.c to
++ test/demo_keyok.c to allow building these with libtool.
++
++20021123
++ + add example program test/define_key.c for define_key().
++ + add example program test/keyok.c for keyok().
++ + add example program test/ins_wide.c for wins_wch() and wins_wstr().
++ + modify wins_wch() and wins_wstr() to interpret tabs by using the
++ winsch() internal function.
++ + modify setcchar() to allow for wchar_t input strings that have
++ more than one spacing character.
++
++20021116
++ + fix a boundary check in lib_insch.c (patch by Philippe Blain).
++ + change type for *printw functions from NCURSES_CONST to const
++ (prompted by comment by Pedro Palhoto Matos <plpm@mega.ist.utl.pt>,
++ but really from a note on X/Open's website stating that either is
++ acceptable, and the latter will be used in a future revision).
++ + add xterm-1002, xterm-1003 terminfo entries to demonstrate changes in
++ lib_mouse.c (20021026) -TD
++ + add screen-bce, screen-s entries from screen 3.9.13 (report by
++ Adam Lazur <zal@debian.org>) -TD
++ + add mterm terminfo entries -TD
++
++20021109
++ + split-out useful fragments in terminfo for vt100 and vt220 numeric
++ keypad, i.e., vt100+keypad, vt100+pfkeys, vt100+fnkeys and
++ vt220+keypad. The last as embedded in various entries had ka3 and
++ kb2 interchanged (report/discussion with Leonard den Ottolander
++ <leonardjo@hetnet.nl>).
++ + add check in tic for keypads consistent with vt100 layout.
++ + improve checks in tic for color capabilities
++
++20021102
++ + check for missing/empty/illegal terminfo name in _nc_read_entry()
++ (report by Martin Mokrejs, where $TERM was set to an empty string).
++ + rewrote lib_insch.c, combining it with lib_insstr.c so both handle
++ tab and other control characters consistently (report by Philippe
++ Blain).
++ + remove an #undef for KEY_EVENT from curses.tail used in the
++ experimental NCURSES_WGETCH_EVENTS feature. The #undef confuses
++ dpkg's build script (Debian #165897).
++ + fix MKlib_gen.sh, working around the ironically named POSIXLY_CORRECT
++ feature of GNU sed 4.0 (reported by Ervin Nemeth <airwin@inf.bme.hu>).
++
++20021026
++ + implement logic in lib_mouse.c to handle position reports which are
++ generated when XFree86 xterm is initialized with private modes 1002
++ or 1003. These are returned to the application as the
++ REPORT_MOUSE_POSITION mask, which was not implemented. Tested both
++ with ncurses 'a' menu (prompted by discussion with Larry Riedel
++ <Larry@Riedel.org>).
++ + modify lib_mouse.c to look for "XM" terminfo string, which allows
++ one to override the escape sequence used to enable/disable mouse
++ mode. In particular this works for XFree86 xterm private modes
++ 1002 and 1003. If "XM" is missing (note that this is an extended
++ name), lib_mouse uses the conventional private mode 1000.
++ + correct NOT_LOCAL() macro in lib_mvcur.c to refer to screen_columns
++ where it used screen_lines (report by Philippe Blain).
++ + correct makefile rules for the case when both --with-libtool and
++ --with-gpm are given (report by Mr E_T <troll@logi.net.au>).
++ + add note to terminfo manpage regarding the differences between
++ setaf/setab and setf/setb capabilities (report by Pavel Roskin).
++
++20021019
++ + remove redundant initialization of TABSIZE in newterm(), since it is
++ already done in setupterm() (report by Philippe Blain).
++ + add test/inserts.c, to test winnstr() and winsch().
++ + replace 'sort' in dist.mk with script that sets locale to POSIX.
++ + update URLs in announce.html.in (patch by Frederic L W Meunier).
++ + remove glibc add-on files, which are no longer needed (report by
++ Frederic L W Meunier).
++
+ 20021012 5.3 release for upload to ftp.gnu.org
+ + modify ifdef's in etip.h.in to allow the etip.h header to compile
+ with gcc 3.2 (patch by Dimitar Zhekov <jimmy@is-vn.bg>).
+diff -urNd -urNd ncurses-5.3/README ncurses-5.3.20030906.orig/README
+--- ncurses-5.3/README Sat Aug 12 18:31:21 2000
++++ ncurses-5.3.20030906.orig/README Tue May 13 20:08:22 2003
+@@ -1,4 +1,4 @@
+--- $Id: README,v 1.20 2000/08/12 23:31:21 tom Exp $
++-- $Id: README,v 1.21 2003/02/08 19:36:39 tom Exp $
+ -------------------------------------------------------------------------------
+ README file for the ncurses package
+
+@@ -43,6 +43,14 @@
+ libform.so (shared)
+ libform_g.a (debug enabled)
+
++If you configure using the --enable-widec option, a "w" is appended to the
++library names (e.g., libncursesw.a), and the resulting libraries support
++wide-characters, e.g., via a UTF-8 locale. The corresponding header files
++are compatible with the non-wide-character configuration; wide-character
++features are provided by ifdef's in the header files. The wide-character
++library interfaces are not binary-compatible with the non-wide-character
++version.
++
+ 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
+diff -urNd -urNd ncurses-5.3/aclocal.m4 ncurses-5.3.20030906.orig/aclocal.m4
+--- ncurses-5.3/aclocal.m4 Sat Sep 21 18:59:01 2002
++++ ncurses-5.3.20030906.orig/aclocal.m4 Fri Sep 12 16:42:59 2003
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2000,2001,2002 Free Software Foundation, Inc. *
++dnl Copyright (c) 1998-2002,2003 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,22 +26,24 @@
+ dnl authorization. *
+ dnl***************************************************************************
+ dnl
+-dnl Author: Thomas E. Dickey 1996,1997,1998,1999,2000,2001
++dnl Author: Thomas E. Dickey 1995-2003
+ dnl
+-dnl $Id: aclocal.m4,v 1.285 2002/09/21 23:59:01 tom Exp $
++dnl $Id: aclocal.m4,v 1.313 2003/09/06 23:46:28 tom Exp $
+ dnl Macros used in NCURSES auto-configuration script.
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+ dnl ---------------------------------------------------------------------------
++dnl CF_ADA_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
++dnl -------------------
+ dnl Construct the list of include-options for the C programs in the Ada95
+ dnl binding.
+ AC_DEFUN([CF_ADA_INCLUDE_DIRS],
+ [
+-ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
++ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
+ if test "$srcdir" != "."; then
+- ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
++ ACPPFLAGS="-I\$(srcdir)/../../include $ACPPFLAGS"
+ fi
+ if test "$GCC" != yes; then
+ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
+@@ -57,6 +59,8 @@
+ AC_SUBST(ACPPFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ADD_CFLAGS version: 5 updated: 2002/12/01 00:12:15
++dnl -------------
+ dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+ dnl The second parameter if given makes this macro verbose.
+ AC_DEFUN([CF_ADD_CFLAGS],
+@@ -88,11 +92,13 @@
+
+ if test -n "$cf_new_cppflags" ; then
+ ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+ fi
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
++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],
+@@ -143,6 +149,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
++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
+@@ -159,6 +167,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_BOOL_DECL version: 6 updated: 2001/12/02 01:39:28
++dnl ------------
+ dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
+ dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
+ dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
+@@ -185,6 +195,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_BOOL_SIZE version: 10 updated: 2002/02/23 20:38:31
++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.
+ dnl
+@@ -251,6 +263,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CFG_DEFAULTS version: 6 updated: 2003/07/12 15:15:19
++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
+ dnl look for:
+@@ -267,7 +281,7 @@
+ if test "x$prefix" = "xNONE" ; then
+ case "$cf_cv_system_name" in
+ # non-vendor systems don't have a conflict
+- openbsd*|netbsd*|freebsd*|linux*|cygwin*)
++ openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
+ prefix=/usr
+ ;;
+ *) prefix=$ac_default_prefix
+@@ -303,6 +317,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
++dnl ----------
+ dnl Check if the terminal-capability database functions are available. If not,
+ dnl ncurses has a much-reduced version.
+ AC_DEFUN([CF_CGETENT],[
+@@ -324,6 +340,8 @@
+ test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_CACHE version: 7 updated: 2001/12/19 00:50:10
++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.
+ dnl
+@@ -354,6 +372,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23
++dnl --------------
+ dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
+ dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
+ dnl ourselves.
+@@ -383,6 +403,8 @@
+ CF_CHECK_EXTERN_DATA($1,int)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
++dnl --------------------
+ dnl Check for existence of external data in the current set of libraries. If
+ dnl we can modify it, it's real enough.
+ dnl $1 = the name to check
+@@ -406,6 +428,8 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
++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
+ dnl (1999/9/11).
+@@ -439,6 +463,8 @@
+ test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
++dnl -----------------
+ dnl Check if the g++ compiler supports vscan function (not a standard feature).
+ AC_DEFUN([CF_CPP_VSCAN_FUNC],
+ [
+@@ -515,9 +541,13 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
++dnl ----------
+ dnl "dirname" is not portable, so we fake it with a shell script.
+-AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's:/[[^/]]*$::'`])dnl
++AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
++dnl ---------------
+ AC_DEFUN([CF_DIRS_TO_MAKE],
+ [
+ DIRS_TO_MAKE="lib"
+@@ -537,12 +567,16 @@
+ AC_SUBST(DIRS_TO_MAKE)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
++dnl --------
+ dnl Check if 'errno' is declared in <errno.h>
+ AC_DEFUN([CF_ERRNO],
+ [
+ CF_CHECK_ERRNO(errno)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
++dnl ---------------
+ dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
+ dnl math.h and builtin.h, only for ncurses
+ AC_DEFUN([CF_ETIP_DEFINES],
+@@ -554,7 +588,7 @@
+ do
+ for cf_excp in "" MATH_EXCEPTION
+ do
+- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu"
++ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -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([
+@@ -571,6 +605,8 @@
+ CXXFLAGS="$cf_save_CXXFLAGS"
+ ])
+ dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_MEMMOVE version: 5 updated: 2000/08/12 23:18:52
++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.
+ AC_DEFUN([CF_FUNC_MEMMOVE],
+@@ -600,6 +636,8 @@
+ fi
+ ])])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_POLL version: 2 updated: 2000/02/06 01:38:04
++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],[
+@@ -627,6 +665,8 @@
+ test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
++dnl ---------------
+ dnl Some old/broken variations define tcgetattr() only as a macro in
+ dnl termio(s).h
+ AC_DEFUN([CF_FUNC_TERMIOS],[
+@@ -654,6 +694,8 @@
+ test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
++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
+ dnl other functions.
+@@ -697,6 +739,8 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GCC_ATTRIBUTES version: 9 updated: 2002/12/21 19:25:52
++dnl -----------------
+ dnl Test for availability of useful gcc __attribute__ directives to quiet
+ dnl compiler warnings. Though useful, not all are supported -- and contrary
+ dnl to documentation, unrecognized directives cause older compilers to barf.
+@@ -761,8 +805,6 @@
+ if AC_TRY_EVAL(ac_compile); then
+ test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
+ cat conftest.h >>confdefs.h
+-# else
+-# sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
+ fi
+ done
+ else
+@@ -772,17 +814,35 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GCC_VERSION version: 3 updated: 2003/09/06 19:16:57
++dnl --------------
++dnl Find version of gcc
++AC_DEFUN([CF_GCC_VERSION],[
++AC_REQUIRE([AC_PROG_CC])
++GCC_VERSION=none
++if test "$GCC" = yes ; then
++ AC_MSG_CHECKING(version of $CC)
++ GCC_VERSION="`${CC} --version|sed -e '2,$d' -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: 15 updated: 2003/07/05 18:42:30
++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:
+ dnl
+ dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
+ dnl -Wredundant-decls (system headers make this too noisy)
+ dnl -Wtraditional (combines too many unrelated messages, only a few useful)
+-dnl -Wwrite-strings (too noisy, but should review occasionally)
++dnl -Wwrite-strings (too noisy, but should review occasionally). This
++dnl is enabled for ncurses using "--enable-const".
+ dnl -pedantic
+ dnl
+ AC_DEFUN([CF_GCC_WARNINGS],
+ [
++AC_REQUIRE([CF_GCC_VERSION])
+ if test "$GCC" = yes
+ then
+ cat > conftest.$ac_ext <<EOF
+@@ -810,8 +870,19 @@
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+ if AC_TRY_EVAL(ac_compile); then
+ test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
++ case $cf_opt in #(vi
++ Wcast-qual) #(vi
++ CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
++ ;;
++ Winline) #(vi
++ case $GCC_VERSION in
++ 3.3*)
++ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
++ continue;;
++ esac
++ ;;
++ esac
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+- test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
+ fi
+ done
+ rm -f conftest*
+@@ -820,6 +891,8 @@
+ AC_SUBST(EXTRA_CFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GNAT_TRY_RUN version: 2 updated: 1998/07/19 00:25:18
++dnl ---------------
+ dnl Verify that a test program compiles and runs with GNAT
+ dnl $cf_ada_make is set to the program that compiles/links
+ AC_DEFUN([CF_GNAT_TRY_RUN],
+@@ -843,21 +916,26 @@
+ rm -f conftest*
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl Verify Version of GNAT.
++dnl CF_GNAT_VERSION version: 11 updated: 2003/09/06 19:42:09
++dnl ---------------
++dnl Verify version of GNAT.
+ AC_DEFUN([CF_GNAT_VERSION],
+ [
+-cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
+- sed -e 's/[[^0-9 \.]]//g' | $AWK '{print $[1];}'`
+-case $cf_cv_gnat_version in
++AC_MSG_CHECKING(for gnat version)
++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/ .*//'`
++AC_MSG_RESULT($cf_gnat_version)
++
++case $cf_gnat_version in
+ 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
+ cf_cv_prog_gnat_correct=yes
+ ;;
+- *) echo Unsupported GNAT version $cf_cv_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
++ *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
+ cf_cv_prog_gnat_correct=no
+ ;;
+ esac
+-case $cf_cv_gnat_version in
+- 3.1*|[[4-9]].*)
++case $cf_gnat_version in
++ 3.[[1-9]]*|[[4-9]].*)
+ cf_compile_generics=generics
+ cf_generic_objects="\$(GENOBJS)"
+ ;;
+@@ -867,6 +945,8 @@
+ esac
+ ])
+ dnl ---------------------------------------------------------------------------
++dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53
++dnl -------------
+ dnl Check if we must define _GNU_SOURCE to get a reasonable value for
+ dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
+ dnl (or misfeature) of glibc2, which breaks portability of many applications,
+@@ -895,6 +975,8 @@
+ test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
++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
+ dnl configure, but won't be able to build the c++ demo program.
+@@ -909,7 +991,7 @@
+ cf_gpp_libname=g++
+ ;;
+ esac
+-if test "$ac_cv_prog_gxx" = yes; then
++if test "$GXX" = yes; then
+ AC_MSG_CHECKING([for lib$cf_gpp_libname])
+ cf_save="$LIBS"
+ LIBS="$LIBS -l$cf_gpp_libname"
+@@ -937,20 +1019,37 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GXX_VERSION version: 3 updated: 2003/09/06 19:16:21
++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++)
++ GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
++ AC_MSG_RESULT($GXX_VERSION)
++fi
++])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_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
++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
+ dnl with gcc, don't append the includedir if it happens to be /usr/include,
+ dnl since that usually breaks gcc's shadow-includes.
+ AC_DEFUN([CF_INCLUDE_DIRS],
+ [
+-CPPFLAGS="$CPPFLAGS -I. -I../include"
++CPPFLAGS="-I. -I../include $CPPFLAGS"
+ if test "$srcdir" != "."; then
+- CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include"
++ CPPFLAGS="-I\$(srcdir)/../include $CPPFLAGS"
+ fi
+ if test "$GCC" != yes; then
+ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
+@@ -966,6 +1065,8 @@
+ AC_SUBST(CPPFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
++dnl ----------
+ dnl Check if we have either a function or macro for 'isascii()'.
+ AC_DEFUN([CF_ISASCII],
+ [
+@@ -979,6 +1080,8 @@
+ test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
++dnl ----------
+ dnl Check for libutf8
+ AC_DEFUN([CF_LIBUTF8],
+ [
+@@ -998,6 +1101,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48
++dnl -------------
+ dnl Compute the library-prefix for the given host system
+ dnl $1 = variable to set
+ AC_DEFUN([CF_LIB_PREFIX],
+@@ -1011,6 +1116,8 @@
+ AC_SUBST(LIB_PREFIX)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LIB_RULES version: 29 updated: 2003/07/19 16:05:52
++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 LIBRARIES list in
+@@ -1054,8 +1161,10 @@
+ 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
+- SHARED_LIB="../lib/${cf_prefix}${cf_dir}\$(ABI_VERSION).dll"
++ SHARED_LIB="../lib/cyg${cf_dir}\$(ABI_VERSION).dll"
+ IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a"
+ LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)"
+ continue
+@@ -1070,7 +1179,7 @@
+ termlib+*) #(vi
+ ;;
+ *) #(vi
+- cf_item=`echo $LIBS_TO_MAKE |sed -e s/$LIB_NAME/$TINFO_NAME/g`
++ cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
+ LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
+ ;;
+ esac
+@@ -1128,7 +1237,7 @@
+ ldconfig="$LDCONFIG" \
+ overwrite=$WITH_OVERWRITE \
+ depend="$cf_depend" \
+- target="$target" \
++ host="$host" \
+ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+ for cf_subdir2 in $cf_subdirs lib
+ do
+@@ -1364,6 +1473,8 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LIB_SUFFIX version: 12 updated: 2002/01/20 01:43:41
++dnl -------------
+ dnl Compute the library file-suffix from the given model name
+ dnl $1 = model name
+ dnl $2 = variable to set
+@@ -1387,6 +1498,8 @@
+ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
++dnl -----------
+ dnl Compute the string to append to -library from the given model name
+ dnl $1 = model name
+ dnl $2 = variable to set
+@@ -1403,6 +1516,8 @@
+ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LINK_DATAONLY version: 6 updated: 2003/02/02 01:41:46
++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
+ dnl have to provide wrappers for global tables to ensure they're linked
+@@ -1418,7 +1533,7 @@
+ EOF
+ if AC_TRY_EVAL(ac_compile) ; then
+ mv conftest.o data.o && \
+- ( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
++ ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
+ fi
+ rm -f conftest.$ac_ext data.o
+ cat >conftest.$ac_ext <<EOF
+@@ -1437,10 +1552,10 @@
+ EOF
+ if AC_TRY_EVAL(ac_compile); then
+ mv conftest.o func.o && \
+- ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
++ ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
+ fi
+ rm -f conftest.$ac_ext func.o
+- ( eval $ac_cv_prog_RANLIB conftest.a ) 2>&5 >/dev/null
++ ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
+ cf_saveLIBS="$LIBS"
+ LIBS="conftest.a $LIBS"
+ AC_TRY_RUN([
+@@ -1464,6 +1579,8 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LINK_FUNCS version: 5 updated: 2003/02/02 01:41:46
++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).
+@@ -1473,7 +1590,7 @@
+ remove \
+ unlink )
+
+-if test "$ac_cv_prog_cc_cross" = yes ; then
++if test "$cross_compiling" = yes ; then
+ AC_CHECK_FUNCS( \
+ link \
+ symlink )
+@@ -1519,6 +1636,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MAKEFLAGS version: 9 updated: 2001/12/30 18:17:27
++dnl ------------
+ dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make'
+ dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
+ dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
+@@ -1556,6 +1675,8 @@
+ AC_SUBST(cf_cv_makeflags)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
++dnl ------------
+ dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
+ dnl a monocase filesystem.
+ AC_DEFUN([CF_MAKE_TAGS],[
+@@ -1583,6 +1704,8 @@
+ AC_SUBST(MAKE_LOWER_TAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_FORMAT version: 6 updated: 2002/01/19 22:51:32
++dnl -----------------
+ dnl Option to allow user to override automatic configuration of manpage format.
+ dnl There are several special cases.
+ AC_DEFUN([CF_MANPAGE_FORMAT],
+@@ -1635,6 +1758,8 @@
+ AC_MSG_RESULT($MANPAGE_FORMAT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_RENAMES version: 6 updated: 2002/01/19 22:51:32
++dnl ------------------
+ dnl The Debian people have their own naming convention for manpages. This
+ dnl option lets us override the name of the file containing renaming, or
+ dnl disable it altogether.
+@@ -1680,6 +1805,8 @@
+ AC_SUBST(MANPAGE_RENAMES)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_SYMLINKS version: 3 updated: 2002/01/19 22:51:32
++dnl -------------------
+ dnl Some people expect each tool to make all aliases for manpages in the
+ dnl man-directory. This accommodates the older, less-capable implementations
+ dnl of 'man', and is optional.
+@@ -1695,6 +1822,8 @@
+ AC_MSG_RESULT($MANPAGE_SYMLINKS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
++dnl --------------
+ dnl This option causes manpages to be run through tbl(1) to generate tables
+ dnl correctly.
+ AC_DEFUN([CF_MANPAGE_TBL],
+@@ -1709,6 +1838,8 @@
+ AC_MSG_RESULT($MANPAGE_TBL)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MAN_PAGES version: 23 updated: 2002/12/21 22:46:07
++dnl ------------
+ dnl Try to determine if the man-pages on the system are compressed, and if
+ dnl so, what format is used. Use this information to construct a script that
+ dnl will install man-pages.
+@@ -1888,7 +2019,7 @@
+ ;;
+ esac
+ cat >>man/edit_man.sh <<CF_EOF
+- suffix=\`basename \$target | sed -e 's/^[[^.]]*//'\`
++ suffix=\`basename \$target | sed -e 's%^[[^.]]*%%'\`
+ if test \$verb = installing ; then
+ echo \$verb \$target
+ \$INSTALL_DATA \$TMP \$target
+@@ -1947,6 +2078,8 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
++dnl -----------
+ dnl Checks for libraries. At least one UNIX system, Apple Macintosh
+ dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
+ dnl AC_CHECK_LIB(m,sin), because that fails for C++.
+@@ -1969,37 +2102,8 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl Check if mbstate_t is declared, and if so, which header file.
+-AC_DEFUN([CF_MBSTATE_T],
+-[
+-# This is needed on Tru64 5.0 to declare mbstate_t
+-AC_CACHE_CHECK(if we must include wchar.h to declare mbstate_t,cf_cv_mbstate_t,[
+-AC_TRY_COMPILE([
+-#include <stdlib.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
+-#endif],
+- [mbstate_t state],
+- [cf_cv_mbstate_t=no],
+- [AC_TRY_COMPILE([
+-#include <stdlib.h>
+-#include <wchar.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
+-#endif],
+- [mbstate_t value],
+- [cf_cv_mbstate_t=yes],
+- [cf_cv_mbstate_t=unknown])])])
+-
+-if test "$cf_cv_mbstate_t" = yes ; then
+- AC_DEFINE(NEED_WCHAR_H)
+-fi
+-
+-if test "$cf_cv_mbstate_t" != unknown ; then
+- AC_DEFINE(HAVE_MBSTATE_T)
+-fi
+-])dnl
+-dnl ---------------------------------------------------------------------------
++dnl CF_MIXEDCASE_FILENAMES version: 2 updated: 2000/10/04 09:18:40
++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.
+ AC_DEFUN([CF_MIXEDCASE_FILENAMES],
+@@ -2017,6 +2121,8 @@
+ test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_MKSTEMP version: 3 updated: 2001/11/08 20:59:59
++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).
+ AC_DEFUN([CF_MKSTEMP],[
+@@ -2065,6 +2171,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
++dnl -------------
+ dnl Compute the object-directory name from the given model name
+ AC_DEFUN([CF_OBJ_SUBDIR],
+ [
+@@ -2083,6 +2191,8 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
++dnl ----------
+ dnl Provide a value for the $PATH and similar separator
+ AC_DEFUN([CF_PATHSEP],
+ [
+@@ -2094,6 +2204,8 @@
+ AC_SUBST(PATHSEP)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_PATH_SYNTAX version: 9 updated: 2002/09/17 23:03:38
++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
+ dnl result begins with 'NONE'. This is necessary to work around autoconf's
+@@ -2123,6 +2235,41 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
++dnl ------------
++dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
++dnl
++dnl $1 = symbol to test
++dnl $2 = value (if any) to use for a predefinition
++AC_DEFUN([CF_PREDEFINE],
++[
++AC_MSG_CHECKING(if we must define $1)
++AC_TRY_COMPILE([#include <sys/types.h>
++],[
++#ifndef $1
++make an error
++#endif],[cf_result=no],[cf_result=yes])
++AC_MSG_RESULT($cf_result)
++
++if test "$cf_result" = yes ; then
++ CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
++elif test "x$2" != "x" ; then
++ AC_MSG_CHECKING(checking for compatible value versus $2)
++ AC_TRY_COMPILE([#include <sys/types.h>
++],[
++#if $1-$2 < 0
++make an error
++#endif],[cf_result=yes],[cf_result=no])
++ AC_MSG_RESULT($cf_result)
++ if test "$cf_result" = no ; then
++ # perhaps we can override it - try...
++ CPPFLAGS="$CPPFLAGS -D$1=$2"
++ fi
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PROG_EXT version: 8 updated: 2002/12/21 19:25:52
++dnl -----------
+ dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
+ AC_DEFUN([CF_PROG_EXT],
+ [
+@@ -2134,7 +2281,7 @@
+ CFLAGS="$CFLAGS -Zmt"
+ CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+ CXXFLAGS="$CXXFLAGS -Zmt"
+- LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
++ LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed -e "s%-Zexe%%g"`
+ PROG_EXT=".exe"
+ ;;
+ cygwin*)
+@@ -2145,6 +2292,8 @@
+ test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
++dnl ---------------
+ dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
+ dnl misc/tabset install won't work properly. Usually this happens only when
+ dnl using the fallback mkinstalldirs script
+@@ -2156,11 +2305,13 @@
+ *)
+ CF_DIRNAME(cf_dir,$INSTALL)
+ test -z "$cf_dir" && cf_dir=.
+- INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
++ INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
+ ;;
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
++dnl --------
+ dnl Attempt to determine if we've got one of the flavors of regular-expression
+ dnl code that we can support.
+ AC_DEFUN([CF_REGEX],
+@@ -2193,6 +2344,8 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_SHARED_OPTS version: 29 updated: 2003/07/12 15:15:19
++dnl --------------
+ dnl Attempt to determine the appropriate CC/LD options for creating a shared
+ dnl library.
+ dnl
+@@ -2303,7 +2456,7 @@
+ MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $[@]` -o $[@]'
+ cf_cv_rm_so_locs=yes
+ ;;
+- linux*|gnu*)
++ linux*|gnu*|k*bsd*-gnu)
+ if test "$DFT_LWR_MODEL" = "shared" ; then
+ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+@@ -2364,7 +2517,7 @@
+ ;;
+ sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
+ # tested with osr5.0.5
+- if test "$ac_cv_prog_gcc" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-belf -KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o [$]@'
+@@ -2378,7 +2531,7 @@
+ ;;
+ sunos4*)
+ # tested with SunOS 4.1.1 and gcc 2.7.0
+- if test "$ac_cv_prog_gcc" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -assert pure-text -o $[@]'
+@@ -2386,7 +2539,7 @@
+ ;;
+ solaris2*)
+ # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
+- if test "$ac_cv_prog_gcc" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
+@@ -2402,7 +2555,7 @@
+ ;;
+ sysv5uw7*|unix_sv*)
+ # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
+- if test "$ac_cv_prog_gcc" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -d y -G -o [$]@'
+@@ -2449,6 +2602,8 @@
+ AC_SUBST(INSTALL_LIB)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
++dnl -------------
+ dnl Check for definitions & structures needed for window size-changing
+ dnl FIXME: check that this works with "snake" (HP-UX 10.x)
+ AC_DEFUN([CF_SIZECHANGE],
+@@ -2517,6 +2672,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_SRC_MODULES version: 14 updated: 2002/01/19 22:51:32
++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
+ dnl use in CF_LIB_RULES.
+@@ -2614,6 +2771,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
++dnl -----------------
+ dnl Check for -lstdc++, which is GNU's standard C++ library.
+ AC_DEFUN([CF_STDCPP_LIBRARY],
+ [
+@@ -2642,10 +2801,14 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
++dnl --------------
+ dnl Remove "-g" option from the compiler options
+ AC_DEFUN([CF_STRIP_G_OPT],
+-[$1=`echo ${$1} | sed -e 's/-g //' -e 's/-g$//'`])dnl
++[$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 -------------------
+ 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
+@@ -2671,6 +2834,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
++dnl -----------------
+ dnl Some machines require _POSIX_SOURCE to completely define struct termios.
+ dnl If so, define SVR4_TERMIO
+ AC_DEFUN([CF_STRUCT_TERMIOS],[
+@@ -2705,6 +2870,8 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_SUBST version: 2 updated: 1997/09/06 23:41:28
++dnl --------
+ dnl Shorthand macro for substituting things that the user may override
+ dnl with an environment variable.
+ dnl
+@@ -2721,6 +2888,8 @@
+ $2=${cf_cv_subst_$2}
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_SUBST_NCURSES_VERSION version: 7 updated: 2003/06/07 16:22:51
++dnl ------------------------
+ dnl Get the version-number for use in shared-library naming, etc.
+ AC_DEFUN([CF_SUBST_NCURSES_VERSION],
+ [
+@@ -2739,12 +2908,13 @@
+ dnl We need these values in the generated makefiles
+ AC_SUBST(cf_cv_rel_version)
+ AC_SUBST(cf_cv_abi_version)
+-AC_SUBST(cf_cv_cc_bool_type)
+ AC_SUBST(cf_cv_builtin_bool)
+ AC_SUBST(cf_cv_header_stdbool_h)
+ 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 ------------------
+ dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
+ dnl older SCO configurations.
+ AC_DEFUN([CF_SYS_TIME_SELECT],
+@@ -2766,6 +2936,8 @@
+ test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_TYPEOF_CHTYPE version: 4 updated: 2000/10/04 09:18:40
++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
+ dnl long, but on newer 64-bit machines, probably want an int. If we're using
+@@ -2835,6 +3007,8 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
++dnl -----------------
+ dnl
+ AC_DEFUN([CF_TYPE_SIGACTION],
+ [
+@@ -2849,6 +3023,8 @@
+ test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
++dnl --------------------
+ dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
+ dnl won't, but they're still there.
+ AC_DEFUN([CF_UNSIGNED_LITERALS],
+@@ -2862,6 +3038,8 @@
+ AC_MSG_RESULT($cf_cv_unsigned_literals)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
++dnl --------
+ dnl Make an uppercase version of a variable
+ dnl $1=uppercase($2)
+ AC_DEFUN([CF_UPPER],
+@@ -2869,11 +3047,184 @@
+ $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
++dnl ----------
+ dnl Use AC_VERBOSE w/o the warnings
+ AC_DEFUN([CF_VERBOSE],
+ [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_WCHAR_TYPE version: 1 updated: 2003/03/22 19:13:43
++dnl -------------
++dnl Check if type wide-character type $1 is declared, and if so, which header
++dnl file is needed. The second parameter is used to set a shell variable when
++dnl the type is not found. The first parameter sets a shell variable for the
++dnl opposite sense.
++AC_DEFUN([CF_WCHAR_TYPE],
++[
++# This is needed on Tru64 5.0 to declare $1
++AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
++AC_TRY_COMPILE([
++#include <stdlib.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif],
++ [$1 state],
++ [cf_cv_$1=no],
++ [AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <wchar.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif],
++ [$1 value],
++ [cf_cv_$1=yes],
++ [cf_cv_$1=unknown])])])
++
++if test "$cf_cv_$1" = yes ; then
++ AC_DEFINE(NEED_WCHAR_H)
++ NEED_WCHAR_H=1
++fi
++
++ifelse($2,,,[
++# if we do not find $1 in either place, use substitution to provide a fallback.
++if test "$cf_cv_$1" = unknown ; then
++ $2=1
++fi
++])
++ifelse($3,,,[
++# if we find $1 in either place, use substitution to provide a fallback.
++if test "$cf_cv_$1" != unknown ; then
++ $3=1
++fi
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_DBMALLOC version: 2 updated: 2002/12/29 21:11:45
++dnl ----------------
++dnl Configure-option for dbmalloc
++AC_DEFUN([CF_WITH_DBMALLOC],[
++AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
++AC_ARG_WITH(dbmalloc,
++ [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
++ [with_dbmalloc=$withval],
++ [with_dbmalloc=no])
++AC_MSG_RESULT($with_dbmalloc)
++if test $with_dbmalloc = yes ; then
++ AC_CHECK_LIB(dbmalloc,debug_malloc)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_DMALLOC version: 2 updated: 2002/12/29 21:11:45
++dnl ---------------
++dnl Configure-option for dmalloc
++AC_DEFUN([CF_WITH_DMALLOC],[
++AC_MSG_CHECKING(if you want to link with dmalloc for testing)
++AC_ARG_WITH(dmalloc,
++ [ --with-dmalloc test: use Gray Watson's dmalloc library],
++ [with_dmalloc=$withval],
++ [with_dmalloc=no])
++AC_MSG_RESULT($with_dmalloc)
++if test $with_dmalloc = yes ; then
++ AC_CHECK_LIB(dmalloc,dmalloc_debug)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_LIBTOOL version: 8 updated: 2003/09/06 19:15:56
++dnl ---------------
++dnl Provide a configure option to incorporate libtool. Define several useful
++dnl symbols for the makefile rules.
++AC_DEFUN([CF_WITH_LIBTOOL],
++[
++LIBTOOL=
++
++# common library maintenance symbols that are convenient for libtool scripts:
++LIB_CREATE='$(AR) -cr'
++LIB_OBJECT='$(OBJECTS)'
++LIB_SUFFIX=.a
++LIB_PREP="$RANLIB"
++
++# symbols used to prop libtool up to enable it to determine what it should be
++# doing:
++LIB_CLEAN=
++LIB_COMPILE=
++LIB_LINK=
++LIB_INSTALL=
++LIB_UNINSTALL=
++
++AC_MSG_CHECKING(if you want to build libraries with libtool)
++AC_ARG_WITH(libtool,
++ [ --with-libtool generate libraries with libtool],
++ [with_libtool=$withval],
++ [with_libtool=no])
++AC_MSG_RESULT($with_libtool)
++if test "$with_libtool" != "no"; then
++ if test "$with_libtool" != "yes" ; then
++ CF_PATH_SYNTAX(with_libtool)
++ LIBTOOL=$with_libtool
++ else
++ AC_PATH_PROG(LIBTOOL,libtool)
++ fi
++ if test -z "$LIBTOOL" ; then
++ AC_MSG_ERROR(Cannot find libtool)
++ fi
++
++ LIB_CREATE='$(LIBTOOL) --mode=link $(CC) -rpath $(DESTDIR)$(libdir) -version-info `cut -f1 $(srcdir)/VERSION` -o'
++ LIB_OBJECT='$(OBJECTS:.o=.lo)'
++ LIB_SUFFIX=.la
++ LIB_CLEAN='$(LIBTOOL) --mode=clean'
++ LIB_COMPILE='$(LIBTOOL) --mode=compile'
++ LIB_LINK='$(LIBTOOL) --mode=link'
++ LIB_INSTALL='$(LIBTOOL) --mode=install'
++ 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 '2,$d' -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 libtool)
++ fi
++
++ # special hack to add --tag option for C++ compiler
++ case $cf_cv_libtool_version in
++ 1.[[5-9]]*|[[2-9]]*)
++ LIBTOOL_CXX="$LIBTOOL --tag=CXX"
++ ;;
++ *)
++ LIBTOOL_CXX="$LIBTOOL"
++ ;;
++ esac
++else
++ LIBTOOL=""
++ LIBTOOL_CXX=""
++fi
++
++test -z "$LIBTOOL" && ECHO_LT=
++
++AC_SUBST(LIBTOOL)
++AC_SUBST(LIBTOOL_CXX)
++
++AC_SUBST(LIB_CREATE)
++AC_SUBST(LIB_OBJECT)
++AC_SUBST(LIB_SUFFIX)
++AC_SUBST(LIB_PREP)
++
++AC_SUBST(LIB_CLEAN)
++AC_SUBST(LIB_COMPILE)
++AC_SUBST(LIB_LINK)
++AC_SUBST(LIB_INSTALL)
++AC_SUBST(LIB_UNINSTALL)
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATH version: 6 updated: 1998/10/11 00:40:17
++dnl ------------
+ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
+ dnl defaulting to yes/no.
+ dnl
+@@ -2891,6 +3242,8 @@
+ AC_SUBST($3)dnl
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
++dnl ----------------
+ dnl Process an option specifying a list of colon-separated paths.
+ dnl
+ dnl $1 = option name
+@@ -2930,3 +3283,33 @@
+ AC_SUBST($3)dnl
+
+ ])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
++dnl ----------------
++dnl If we can compile with sysmouse, make it available unless it is not wanted.
++AC_DEFUN([CF_WITH_SYSMOUSE],[
++# not everyone has "test -c"
++if test -c /dev/sysmouse 2>/dev/null ; then
++AC_MSG_CHECKING(if you want to use sysmouse)
++AC_ARG_WITH(sysmouse,
++ [ --with-sysmouse use sysmouse (FreeBSD console)],
++ [cf_with_sysmouse=$withval],
++ [cf_with_sysmouse=maybe])
++ if test "$cf_with_sysmouse" != no ; then
++ AC_TRY_COMPILE([
++#include <osreldate.h>
++#if (__FreeBSD_version >= 400017)
++#include <sys/consio.h>
++#include <sys/fbio.h>
++#else
++#include <machine/console.h>
++#endif
++],[
++ struct mouse_info the_mouse;
++ ioctl(0, CONS_MOUSECTL, &the_mouse);
++],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
++ fi
++AC_MSG_RESULT($cf_with_sysmouse)
++test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
++fi
++])dnl
+diff -urNd -urNd ncurses-5.3/announce.html.in ncurses-5.3.20030906.orig/announce.html.in
+--- ncurses-5.3/announce.html.in Sat Oct 12 18:35:32 2002
++++ ncurses-5.3.20030906.orig/announce.html.in Tue May 13 20:08:22 2003
+@@ -1,11 +1,12 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+ <!--
+- $Id: announce.html.in,v 1.44 2002/10/12 23:35:32 tom Exp $
++ $Id: announce.html.in,v 1.48 2002/10/19 21:46:46 tom Exp $
+ -->
+ <HTML>
+ <HEAD>
+-<TITLE>Announcing ncurses @VERSION@ Pre-Release</TITLE>
++<TITLE>Announcing ncurses @VERSION@</TITLE>
+ <link rev=made href="mailto:bug-ncurses@gnu.org">
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </HEAD>
+ <BODY>
+
+@@ -35,9 +36,9 @@
+
+ The ncurses distribution is available via anonymous FTP at
+ the GNU distribution site
+-<A HREF="ftp://ftp.gnu.org/pub/gnu/ncurses">ftp://ftp.gnu.org/pub/gnu/ncurses</A>.
++<A HREF="ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A>&nbsp;.
+ <br>It is also available at
+-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
++<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
+
+ <H1>Release Notes</H1>
+
+@@ -317,61 +318,61 @@
+ <DT> cdk
+ <DD> Curses Development Kit
+ <br>
+-<A HREF="http://invisible-island.net/cdk/cdk.html">http://invisible-island.net/cdk</A>.
++<A HREF="http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</A>
+ <br>
+-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
++<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a>
+ <DT> ded
+ <DD> directory-editor
+ <br>
+-<A HREF="http://invisible-island.net/ded/ded.html">http://invisible-island.net/ded</A>.
++<A HREF="http://invisible-island.net/ded/">http://invisible-island.net/ded/</A>
+ <DT> dialog
+ <DD> the underlying application used in Slackware's setup, and the basis
+ for similar applications on GNU/Linux.
+ <br>
+-<A HREF="http://invisible-island.net/dialog/dialog.html">http://invisible-island.net/dialog</A>.
++<A HREF="http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</A>
+ <DT> lynx
+ <DD> the character-screen WWW browser
+ <br>
+-<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release</A>.
++<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release/</A>
+ <DT> Midnight Commander
+ <DD> file manager
+ <br>
+-<A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
++<A HREF="http://www.ibiblio.org/mc/">http://www.ibiblio.org/mc/</A>
+ <DT> mutt
+ <DD> mail utility
+ <br>
+-<A HREF="http://www.mutt.org">http://www.mutt.org</A>.
++<A HREF="http://www.mutt.org/">http://www.mutt.org/</A>
+ <DT> ncftp
+ <DD> file-transfer utility
+ <br>
+-<A HREF="http://www.ncftp.com">http://www.ncftp.com</A>.
++<A HREF="http://www.ncftp.com/">http://www.ncftp.com/</A>
+ <DT> nvi
+ <DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
+ <br>
+-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>.
++<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>
+ <DT> tin
+ <DD> newsreader, supporting color, MIME
+ <br>
+-<A HREF="http://www.tin.org">http://www.tin.org</A>.
++<A HREF="http://www.tin.org/">http://www.tin.org/</A>
+ <DT> taper
+ <DD> tape archive utility
+ <br>
+-<A HREF="http://members.iinet.net.au/~yusuf/taper/">http://members.iinet.net.au/~yusuf/taper/</A>.
++<A HREF="http://taper.e-survey.net.au/">http://taper.e-survey.net.au/</A>
+ <DT> vh-1.6
+ <DD> Volks-Hypertext browser for the Jargon File
+ <br>
+-<A HREF="http://www.bg.debian.org/Packages/unstable/text/vh.html">http://www.bg.debian.org/Packages/unstable/text/vh.html</A>.
++<A HREF="http://www.debian.org/Packages/unstable/text/vh.html">http://www.debian.org/Packages/unstable/text/vh.html</A>
+ </DL>
+ as well as some that use ncurses for the terminfo support alone:
+ <DL>
+ <DT> minicom
+ <DD> terminal emulator
+ <br>
+-<A HREF="http://www.pp.clinet.fi/~walker/minicom.html">http://www.pp.clinet.fi/~walker/minicom.html</A>.
++<A HREF="http://www.netsonic.fi/~walker/minicom.html">http://www.netsonic.fi/~walker/minicom.html</A>
+ <DT> vile
+ <DD> vi-like-emacs
+ <br>
+-<A HREF="http://invisible-island.net/vile/vile.html">http://invisible-island.net/vile</A>.
++<A HREF="http://invisible-island.net/vile/">http://invisible-island.net/vile/</A>
+ </DL>
+ <P>
+
+@@ -382,7 +383,7 @@
+
+ The original developers of ncurses are <A
+ HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
+-<A HREF="http://www.ccil.org/~esr/home.html">Eric S. Raymond</A>.
++<A HREF="http://www.tuxedo.org/~esr/">Eric S. Raymond</A>.
+ Ongoing work is being done by
+ <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
+ and
+@@ -404,7 +405,7 @@
+ testing of this package.<P>
+
+ Beta versions of ncurses and patches to the current release are made available at
+-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
++<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
+
+ <H2>Future Plans</H2>
+ <UL>
+@@ -418,12 +419,12 @@
+
+ The distribution includes and uses a version of the terminfo-format
+ terminal description file maintained by Eric Raymond.
+-<A HREF="http://earthspace.net/~esr/terminfo">http://earthspace.net/~esr/terminfo</A>.<P>
++<A HREF="http://www.tuxedo.org/~esr/terminfo/">http://www.tuxedo.org/~esr/terminfo/</A>&nbsp;.<P>
+
+ You can find lots of information on terminal-related topics
+ not covered in the terminfo file at
+ <A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
+-archive</A>.
++archive</A>&nbsp;.
+ </BODY>
+ </HTML>
+ <!--
+diff -urNd -urNd ncurses-5.3/c++/Makefile.in ncurses-5.3.20030906.orig/c++/Makefile.in
+--- ncurses-5.3/c++/Makefile.in Sat Jan 19 14:25:31 2002
++++ ncurses-5.3.20030906.orig/c++/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.64 2002/01/19 20:25:31 NIIBE.Yutaka Exp $
++# $Id: Makefile.in,v 1.69 2003/08/24 00:19:44 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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,7 +48,12 @@
+ libdir = @libdir@
+ includedir = @includedir@
+
+-LIBTOOL = @LIBTOOL@
++LIBTOOL = @LIBTOOL_CXX@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
++LIBTOOL_INSTALL = @LIB_INSTALL@
++LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+@@ -58,7 +63,7 @@
+
+ CXX_AR = @CXX_AR@
+ CXX_AR_OPTS = @CXX_AR_OPTS@
+-RANLIB = @RANLIB@
++RANLIB = @LIB_PREP@
+
+ CXX = @CXX@
+ CPP = @CPP@
+@@ -83,7 +88,9 @@
+ REL_VERSION = @cf_cv_rel_version@
+ ABI_VERSION = @cf_cv_abi_version@
+
+-LINK = @LINK_PROGS@ $(LIBTOOL) $(CXX) @CXXLDFLAGS@
++LINK = @LINK_PROGS@ $(LIBTOOL_LINK) $(CXX) @CXXLDFLAGS@
++SHLIB_DIRS = -L../lib
++SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
+
+ LIBROOT = ncurses++
+
+@@ -102,11 +109,11 @@
+ LDFLAGS = @TEST_ARGS@ @LDFLAGS@ \
+ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
+
+-LDFLAGS_LIBTOOL = $(LDFLAGS)
+-LDFLAGS_NORMAL = $(LDFLAGS)
+-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
+-LDFLAGS_PROFILE = $(LDFLAGS) -pg
+-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
++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_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@)
+
+@@ -140,9 +147,9 @@
+ $(RANLIB) $@
+
+ ../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
+- cd ../lib && $(LIBTOOL) $(CXX) -o $(LIBNAME) $(LIB_OBJS:.o=.lo) \
++ cd ../lib && $(LIBTOOL_LINK) $(CXX) -o $(LIBNAME) $(LIB_OBJS:.o=.lo) \
+ -rpath $(INSTALL_PREFIX)$(libdir) \
+- -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR)
++ -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(SHLIB_LIST)
+
+ OBJS_DEMO = $(MODEL)/demo.o
+
+@@ -163,18 +170,18 @@
+
+ install \
+ install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
+- $(LIBTOOL) $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
++ $(LIBTOOL_INSTALL) $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
+
+ uninstall \
+ uninstall.libs::
+- -$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
++ -$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
+
+ mostlyclean ::
+ -rm -f core tags TAGS *~ *.bak *.i *.ii *.ln *.atac trace
+
+ clean :: mostlyclean
+ -rm -rf $(MODEL)/SunWS_cache
+- -$(LIBTOOL) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:.o=.lo) $(OBJS_DEMO)
++ -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:.o=.lo) $(OBJS_DEMO)
+ -rm -rf .libs
+
+ distclean :: clean
+diff -urNd -urNd ncurses-5.3/c++/cursesmain.cc ncurses-5.3.20030906.orig/c++/cursesmain.cc
+--- ncurses-5.3/c++/cursesmain.cc Sat Jul 6 10:47:52 2002
++++ ncurses-5.3.20030906.orig/c++/cursesmain.cc Sun Jul 20 14:02:08 2003
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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,22 @@
+ #include "internal.h"
+ #include "cursesapp.h"
+
+-MODULE_ID("$Id: cursesmain.cc,v 1.9 2002/07/06 15:47:52 juergen Exp $")
++MODULE_ID("$Id: cursesmain.cc,v 1.10 2003/06/07 23:39:54 tom Exp $")
++
++#if HAVE_LOCALE_H
++#include <locale.h>
++#else
++#define setlocale(name,string) /* nothing */
++#endif
+
+ /* This is the default implementation of main() for a NCursesApplication.
+ * You only have to instantiate a static NCursesApplication object in your
+ * main application source file and link this module with your application.
+- */
++ */
+ int main(int argc, char* argv[])
+ {
++ setlocale(LC_ALL, "");
++
+ NCursesApplication* A = NCursesApplication::getApplication();
+ if (!A)
+ return(1);
+diff -urNd -urNd ncurses-5.3/config.guess ncurses-5.3.20030906.orig/config.guess
+--- ncurses-5.3/config.guess Sat Aug 31 14:53:33 2002
++++ ncurses-5.3.20030906.orig/config.guess Sun Jul 20 14:02:09 2003
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002 Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+-timestamp='2002-08-23'
++timestamp='2003-07-02'
+
+ # 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
+@@ -98,30 +98,32 @@
+ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+ # use `HOST_CC' if defined, but it is deprecated.
+
+-# This shell variable is my proudest work .. or something. --bje
++# Portable tmp directory creation inspired by the Autoconf team.
+
+-set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+-(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+- || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+-dummy=$tmpdir/dummy ;
+-files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+-trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
++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" 1 2 13 15 ;
++: ${TMPDIR=/tmp} ;
++ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
++dummy=$tmp/dummy ;
++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+ case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+- if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+- rm -f $files ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+-esac ;
+-unset files'
++esac ;'
+
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+ # (ghazi@noc.rutgers.edu 1994-08-24)
+@@ -178,7 +180,18 @@
+ ;;
+ esac
+ # The OS release
+- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++ # Debian GNU/NetBSD machines have a different userland, and
++ # thus, need a distinct triplet. However, they do not need
++ # kernel version information, so it can be replaced with a
++ # suitable tag, in the style of linux-gnu.
++ case "${UNAME_VERSION}" in
++ Debian*)
++ release='-gnu'
++ ;;
++ *)
++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++ ;;
++ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+@@ -227,68 +240,52 @@
+ if test $UNAME_RELEASE = "V4.0"; then
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ fi
++ # According to Compaq, /usr/sbin/psrinfo has been available on
++ # OSF/1 and Tru64 systems produced since 1995. I hope that
++ # covers most systems running today. This code pipes the CPU
++ # types through head -n 1, so we only detect the type of CPU 0.
++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
++ case "$ALPHA_CPU_TYPE" in
++ "EV4 (21064)")
++ UNAME_MACHINE="alpha" ;;
++ "EV4.5 (21064)")
++ UNAME_MACHINE="alpha" ;;
++ "LCA4 (21066/21068)")
++ UNAME_MACHINE="alpha" ;;
++ "EV5 (21164)")
++ UNAME_MACHINE="alphaev5" ;;
++ "EV5.6 (21164A)")
++ UNAME_MACHINE="alphaev56" ;;
++ "EV5.6 (21164PC)")
++ UNAME_MACHINE="alphapca56" ;;
++ "EV5.7 (21164PC)")
++ UNAME_MACHINE="alphapca57" ;;
++ "EV6 (21264)")
++ UNAME_MACHINE="alphaev6" ;;
++ "EV6.7 (21264A)")
++ UNAME_MACHINE="alphaev67" ;;
++ "EV6.8CB (21264C)")
++ UNAME_MACHINE="alphaev68" ;;
++ "EV6.8AL (21264B)")
++ UNAME_MACHINE="alphaev68" ;;
++ "EV6.8CX (21264D)")
++ UNAME_MACHINE="alphaev68" ;;
++ "EV6.9A (21264/EV69A)")
++ UNAME_MACHINE="alphaev69" ;;
++ "EV7 (21364)")
++ UNAME_MACHINE="alphaev7" ;;
++ "EV7.9 (21364A)")
++ UNAME_MACHINE="alphaev79" ;;
++ esac
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+- eval $set_cc_for_build
+- cat <<EOF >$dummy.s
+- .data
+-\$Lformat:
+- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
+-
+- .text
+- .globl main
+- .align 4
+- .ent main
+-main:
+- .frame \$30,16,\$26,0
+- ldgp \$29,0(\$27)
+- .prologue 1
+- .long 0x47e03d80 # implver \$0
+- lda \$2,-1
+- .long 0x47e20c21 # amask \$2,\$1
+- lda \$16,\$Lformat
+- mov \$0,\$17
+- not \$1,\$18
+- jsr \$26,printf
+- ldgp \$29,0(\$26)
+- mov 0,\$16
+- jsr \$26,exit
+- .end main
+-EOF
+- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+- if test "$?" = 0 ; then
+- case `$dummy` in
+- 0-0)
+- UNAME_MACHINE="alpha"
+- ;;
+- 1-0)
+- UNAME_MACHINE="alphaev5"
+- ;;
+- 1-1)
+- UNAME_MACHINE="alphaev56"
+- ;;
+- 1-101)
+- UNAME_MACHINE="alphapca56"
+- ;;
+- 2-303)
+- UNAME_MACHINE="alphaev6"
+- ;;
+- 2-307)
+- UNAME_MACHINE="alphaev67"
+- ;;
+- 2-1307)
+- UNAME_MACHINE="alphaev68"
+- ;;
+- 3-1307)
+- UNAME_MACHINE="alphaev7"
+- ;;
+- esac
+- fi
+- rm -f $dummy.s $dummy && rmdir $tmpdir
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
++ Alpha*:OpenVMS:*:*)
++ echo alpha-hp-vms
++ exit 0 ;;
+ 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
+@@ -327,6 +324,9 @@
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
++ DRS?6000:unix:4.0:6*)
++ echo sparc-icl-nx6
++ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+@@ -437,10 +437,9 @@
+ exit (-1);
+ }
+ EOF
+- $CC_FOR_BUILD $dummy.c -o $dummy \
++ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+- && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+- rm -f $dummy.c $dummy && rmdir $tmpdir
++ && exit 0
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+@@ -449,7 +448,7 @@
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+- Night_Hawk:*:*:PowerMAX_OS)
++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+@@ -524,8 +523,7 @@
+ exit(0);
+ }
+ EOF
+- $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+- rm -f $dummy.c $dummy && rmdir $tmpdir
++ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+@@ -623,11 +621,21 @@
+ exit (0);
+ }
+ EOF
+- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
+- if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+- rm -f $dummy.c $dummy && rmdir $tmpdir
++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
++ if [ ${HP_ARCH} = "hppa2.0w" ]
++ then
++ # avoid double evaluation of $set_cc_for_build
++ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
++ then
++ HP_ARCH="hppa2.0w"
++ else
++ HP_ARCH="hppa64"
++ fi
++ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+@@ -661,8 +669,7 @@
+ exit (0);
+ }
+ EOF
+- $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+- rm -f $dummy.c $dummy && rmdir $tmpdir
++ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+@@ -720,15 +727,15 @@
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+- CRAY*T3D:*:*:*)
+- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
++ *:UNICOS/mp:*:*)
++ echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+@@ -744,7 +751,7 @@
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+- *:FreeBSD:*:*)
++ *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
+ # Determine whether the default compiler uses glibc.
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+@@ -756,8 +763,10 @@
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+- rm -f $dummy.c && rmdir $tmpdir
+- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
++ # GNU/FreeBSD systems have a "k" prefix to indicate we are using
++ # FreeBSD's kernel, but not the complete OS.
++ case ${LIBC} in gnu) kernel_only='k' ;; esac
++ echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+@@ -768,14 +777,17 @@
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+- x86:Interix*:3*)
+- echo i386-pc-interix3
++ x86:Interix*:[34]*)
++ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
++ exit 0 ;;
++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
++ echo i${UNAME_MACHINE}-pc-mks
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+- echo i386-pc-interix
++ echo i586-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+@@ -795,6 +807,9 @@
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
++ cris:Linux:*:*)
++ echo cris-axis-linux-gnu
++ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+@@ -818,8 +833,26 @@
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+- rm -f $dummy.c && rmdir $tmpdir
+- test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
++ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
++ ;;
++ mips64:Linux:*:*)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #undef CPU
++ #undef mips64
++ #undef mips64el
++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
++ CPU=mips64el
++ #else
++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
++ CPU=mips64
++ #else
++ CPU=
++ #endif
++ #endif
++EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
++ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+@@ -855,6 +888,9 @@
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
++ sh64*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+@@ -914,7 +950,6 @@
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+- rm -f $dummy.c && rmdir $tmpdir
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+@@ -932,6 +967,23 @@
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
++ i*86:OS/2:*:*)
++ # If we were able to find `uname', then EMX Unix compatibility
++ # is probably installed.
++ echo ${UNAME_MACHINE}-pc-os2-emx
++ exit 0 ;;
++ i*86:XTS-300:*:STOP)
++ echo ${UNAME_MACHINE}-unknown-stop
++ exit 0 ;;
++ i*86:atheos:*:*)
++ echo ${UNAME_MACHINE}-unknown-atheos
++ exit 0 ;;
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
++ echo i386-unknown-lynxos${UNAME_RELEASE}
++ exit 0 ;;
++ i*86:*DOS:*:*)
++ echo ${UNAME_MACHINE}-pc-msdosdjgpp
++ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+@@ -966,9 +1018,6 @@
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+- i*86:*DOS:*:*)
+- echo ${UNAME_MACHINE}-pc-msdosdjgpp
+- exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+@@ -995,9 +1044,12 @@
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
++ M680?0:D-NIX:5.3:*)
++ echo m68k-diab-dnix
++ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
++ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+@@ -1014,9 +1066,6 @@
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+- echo i386-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+@@ -1098,7 +1147,11 @@
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+- echo `uname -p`-apple-darwin${UNAME_RELEASE}
++ case `uname -p` in
++ *86) UNAME_PROCESSOR=i686 ;;
++ powerpc) UNAME_PROCESSOR=powerpc ;;
++ esac
++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+@@ -1111,7 +1164,7 @@
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+- NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
++ NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+@@ -1134,11 +1187,6 @@
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+- i*86:OS/2:*:*)
+- # If we were able to find `uname', then EMX Unix compatibility
+- # is probably installed.
+- echo ${UNAME_MACHINE}-pc-os2-emx
+- exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+@@ -1157,11 +1205,8 @@
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+- i*86:XTS-300:*:STOP)
+- echo ${UNAME_MACHINE}-unknown-stop
+- exit 0 ;;
+- i*86:atheos:*:*)
+- echo ${UNAME_MACHINE}-unknown-atheos
++ SEI:*:*:SEIUX)
++ echo mips-sei-seiux${UNAME_RELEASE}
+ exit 0 ;;
+ esac
+
+@@ -1283,8 +1328,7 @@
+ }
+ EOF
+
+-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+-rm -f $dummy.c $dummy && rmdir $tmpdir
++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+
+ # Apollos put the system type in the environment.
+
+diff -urNd -urNd ncurses-5.3/config.sub ncurses-5.3.20030906.orig/config.sub
+--- ncurses-5.3/config.sub Sat Aug 31 14:53:19 2002
++++ ncurses-5.3.20030906.orig/config.sub Sun Jul 20 14:02:09 2003
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002 Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+-timestamp='2002-08-22'
++timestamp='2003-07-04'
+
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -118,7 +118,7 @@
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+- nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
++ nto-qnx* | linux-gnu* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+@@ -245,21 +245,23 @@
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mipsisa32 | mipsisa32el \
++ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
++ | msp430 \
+ | ns16k | ns32k \
+ | openrisc | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+- | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
++ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+ | strongarm \
+- | tahoe | thumb | tic80 | tron \
++ | tahoe | thumb | tic4x | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xscale | xstormy16 | xtensa \
+@@ -294,7 +296,7 @@
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* \
+ | bs2000-* \
+- | c[123]* | c30-* | [cjt]90-* | c54x-* \
++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+@@ -315,21 +317,25 @@
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mipsisa32-* | mipsisa32el-* \
++ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+- | mipstx39 | mipstx39el \
+- | none-* | np1-* | ns16k-* | ns32k-* \
++ | mipstx39-* | mipstx39el-* \
++ | msp430-* \
++ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+- | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
++ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+- | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
++ | tahoe-* | thumb-* \
++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++ | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+@@ -367,6 +373,9 @@
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
++ amd64)
++ basic_machine=x86_64-pc
++ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+@@ -716,6 +725,10 @@
+ np1)
+ basic_machine=np1-gould
+ ;;
++ nv1)
++ basic_machine=nv1-cray
++ os=-unicosmp
++ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+@@ -758,18 +771,24 @@
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+- pentiumii | pentium2)
++ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
++ pentium4)
++ basic_machine=i786-pc
++ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+- pentiumii-* | pentium2-*)
++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
++ pentium4-*)
++ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+@@ -828,6 +847,10 @@
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
++ sei)
++ basic_machine=mips-sei
++ os=-seiux
++ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+@@ -835,6 +858,9 @@
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
++ sh64)
++ basic_machine=sh64-unknown
++ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+@@ -901,10 +927,6 @@
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+- t3d)
+- basic_machine=alpha-cray
+- os=-unicos
+- ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+@@ -917,6 +939,14 @@
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
++ tic55x | c55x*)
++ basic_machine=tic55x-unknown
++ os=-coff
++ ;;
++ tic6x | c6x*)
++ basic_machine=tic6x-unknown
++ os=-coff
++ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+@@ -973,10 +1003,6 @@
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+- windows32)
+- basic_machine=i386-pc
+- os=-windows32-msvcrt
+- ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+@@ -1023,7 +1049,7 @@
+ we32k)
+ basic_machine=we32k-att
+ ;;
+- sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
++ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sh64)
+@@ -1047,10 +1073,6 @@
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+- c4x*)
+- basic_machine=c4x-none
+- os=-coff
+- ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+@@ -1106,18 +1128,19 @@
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
++ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
+ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+@@ -1129,8 +1152,10 @@
+ ;;
+ esac
+ ;;
++ -nto-qnx*)
++ ;;
+ -nto*)
+- os=-nto-qnx
++ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+@@ -1224,6 +1249,12 @@
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
++ -aros*)
++ os=-aros
++ ;;
++ -kaos*)
++ os=-kaos
++ ;;
+ -none)
+ ;;
+ *)
+@@ -1255,6 +1286,9 @@
+ arm*-semi)
+ os=-aout
+ ;;
++ c4x-* | tic4x-*)
++ os=-coff
++ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+diff -urNd -urNd ncurses-5.3/configure ncurses-5.3.20030906.orig/configure
+--- ncurses-5.3/configure Sat Sep 21 19:49:14 2002
++++ ncurses-5.3.20030906.orig/configure Fri Sep 12 16:42:59 2003
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+-# From configure.in Revision: 1.274 .
++# From configure.in Revision: 1.297 .
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by Autoconf 2.52.20011227.
++# Generated by Autoconf 2.52.20030208.
+ #
+ # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+ # Free Software Foundation, Inc.
+@@ -655,19 +655,20 @@
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+
++ --with-abi-version=XXX override derived ABI version
+ --with-system-type=XXX test: override derived host system-type
+- --enable-add-ons=DIR... used to check if we are a glibc add-on.
+- --with-build-cc=XXX if cross-compiling, the host C compiler (\$BUILD_CC)
+- --with-build-cflags=XXX if cross-compiling, the host C compiler-flags
+- --with-build-cppflags=XXX if cross-compiling, the host C preprocessor-flags
+- --with-build-ldflags=XXX if cross-compiling, the host linker-flags
+- --with-build-libs=XXX if cross-compiling, the host libraries
+ --without-cxx do not adjust ncurses bool to match C++
+ --without-cxx-binding do not build C++ binding and demo
+ --without-ada suppress check for Ada95, don't build demo
+ --without-progs suppress build with programs (e.g., tic)
+ --without-curses-h install curses.h as ncurses.h only
+ --with-install-prefix prefixes actual install-location (\$DESTDIR)
++Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
++ --with-build-cc=XXX the build C compiler (\$BUILD_CC)
++ --with-build-cflags=XXX the build C compiler-flags
++ --with-build-cppflags=XXX the build C preprocessor-flags
++ --with-build-ldflags=XXX the build linker-flags
++ --with-build-libs=XXX the build libraries
+ Options to Specify the Libraries Built/Used:
+ --with-libtool generate libraries with libtool
+ --with-shared generate shared-libraries
+@@ -678,6 +679,7 @@
+ --with-dbmalloc test: use Conor Cahill's dbmalloc library
+ --with-dmalloc test: use Gray Watson's dmalloc library
+ --with-gpm use Alessandro Rubini's GPM library
++ --with-sysmouse use sysmouse (FreeBSD console)
+ --enable-rpath use rpath option when generating shared libraries
+ --with-shlib-version=X Specify rel or abi version for shared libs
+ Fine-Tuning Your Configuration:
+@@ -806,7 +808,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.20011227. Invocation command line was
++generated by GNU Autoconf 2.52.20030208. Invocation command line was
+
+ $ $0 $@
+
+@@ -930,7 +932,7 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+- { echo "$as_me:933: loading site script $ac_site_file" >&5
++ { echo "$as_me:935: 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"
+@@ -941,7 +943,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:944: loading cache $cache_file" >&5
++ { echo "$as_me:946: loading cache $cache_file" >&5
+ echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+@@ -949,7 +951,7 @@
+ esac
+ fi
+ else
+- { echo "$as_me:952: creating cache $cache_file" >&5
++ { echo "$as_me:954: creating cache $cache_file" >&5
+ echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+ fi
+@@ -965,21 +967,21 @@
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+- { echo "$as_me:968: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++ { echo "$as_me:970: 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:972: error: \`$ac_var' was not set in the previous run" >&5
++ { echo "$as_me:974: 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:978: error: \`$ac_var' has changed since the previous run:" >&5
++ { echo "$as_me:980: 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:980: former value: $ac_old_val" >&5
++ { echo "$as_me:982: former value: $ac_old_val" >&5
+ echo "$as_me: former value: $ac_old_val" >&2;}
+- { echo "$as_me:982: current value: $ac_new_val" >&5
++ { echo "$as_me:984: current value: $ac_new_val" >&5
+ echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+@@ -998,9 +1000,9 @@
+ fi
+ done
+ if $ac_cache_corrupted; then
+- { echo "$as_me:1001: error: changes in the environment can compromise the build" >&5
++ { echo "$as_me:1003: 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:1003: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++ { { echo "$as_me:1005: 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
+@@ -1020,10 +1022,10 @@
+ echo "#! $SHELL" >conftest.sh
+ echo "exit 0" >>conftest.sh
+ chmod +x conftest.sh
+-if { (echo "$as_me:1023: PATH=\".;.\"; conftest.sh") >&5
++if { (echo "$as_me:1025: PATH=\".;.\"; conftest.sh") >&5
+ (PATH=".;."; conftest.sh) 2>&5
+ ac_status=$?
+- echo "$as_me:1026: \$? = $ac_status" >&5
++ echo "$as_me:1028: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_path_separator=';'
+ else
+@@ -1040,9 +1042,17 @@
+ cf_cv_abi_version=${NCURSES_MAJOR}
+ cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
+ cf_cv_timestamp=`date`
+-echo "$as_me:1043: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
++echo "$as_me:1045: 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
+
++# 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:1051: WARNING: overriding ABI version to $withval" >&5
++echo "$as_me: WARNING: overriding ABI version to $withval" >&2;}
++ cf_cv_abi_version=$withval
++fi;
++
+ ac_aux_dir=
+ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+@@ -1060,7 +1070,7 @@
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+- { { echo "$as_me:1063: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
++ { { echo "$as_me:1073: 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
+@@ -1070,11 +1080,11 @@
+
+ # Make sure we can run config.sub.
+ $ac_config_sub sun4 >/dev/null 2>&1 ||
+- { { echo "$as_me:1073: error: cannot run $ac_config_sub" >&5
++ { { echo "$as_me:1083: error: cannot run $ac_config_sub" >&5
+ echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+-echo "$as_me:1077: checking build system type" >&5
++echo "$as_me:1087: 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
+@@ -1083,23 +1093,23 @@
+ test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+ test -z "$ac_cv_build_alias" &&
+- { { echo "$as_me:1086: error: cannot guess build type; you must specify one" >&5
++ { { echo "$as_me:1096: 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:1090: error: $ac_config_sub $ac_cv_build_alias failed." >&5
++ { { echo "$as_me:1100: 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:1095: result: $ac_cv_build" >&5
++echo "$as_me:1105: 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:1102: checking host system type" >&5
++echo "$as_me:1112: 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
+@@ -1108,12 +1118,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:1111: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++ { { echo "$as_me:1121: 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:1116: result: $ac_cv_host" >&5
++echo "$as_me:1126: 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/'`
+@@ -1121,7 +1131,7 @@
+ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+ if test -f $srcdir/config.guess ; then
+- echo "$as_me:1124: checking target system type" >&5
++ echo "$as_me:1134: 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
+@@ -1130,12 +1140,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:1133: error: $ac_config_sub $ac_cv_target_alias failed" >&5
++ { { echo "$as_me:1143: 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:1138: result: $ac_cv_target" >&5
++echo "$as_me:1148: 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/'`
+@@ -1166,13 +1176,13 @@
+ fi
+
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+-test -n "$cf_cv_system_name" && echo "$as_me:1169: result: Configuring for $cf_cv_system_name" >&5
++test -n "$cf_cv_system_name" && echo "$as_me:1179: 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:1173: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
++ echo "$as_me:1183: 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:1175: error: \"Please remove config.cache and try again.\"" >&5
++ { { echo "$as_me:1185: 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
+@@ -1180,62 +1190,33 @@
+ # 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:1183: WARNING: overriding system type to $withval" >&5
++ { echo "$as_me:1193: WARNING: overriding system type to $withval" >&5
+ echo "$as_me: WARNING: overriding system type to $withval" >&2;}
+ cf_cv_system_name=$withval
+ fi;
+
+-# We need a configure script only when compiling as part of GNU C library.
+-# Here we have to generate one of the files we need while compiling.
+-#
+-# The only problem is that users of the package might think they have to
+-# run configure themself and find it irritating when nothing happens.
+-#
+-# So we try here to find out whether we are called from the glibc configure
+-# or by a user.
+-#
+-
+-# Check whether --enable-add-ons or --disable-add-ons was given.
+-if test "${enable_add_ons+set}" = set; then
+- enableval="$enable_add_ons"
+- glibc_add_on=yes
+-else
+- glibc_add_on=
+-fi;
+-
+-if test x"$glibc_add_on" = "xyes" ; then
+- rm -f $srcdir/Banner
+- # We are in glibc.
+- rm -f $srcdir/Makefile
+- cp $srcdir/Makefile.glibc $srcdir/Makefile
+- echo "ncurses `grep \"^[ ]*ncurses-version[ ]*=.*$\" \
+- $srcdir/Makefile | sed -e \
+- 's/^[ ]*ncurses-version[ ]*=[ ]*\([^ ^ ]*\)[ ]*$/\1/'`" > $srcdir/Banner
+- exit 0
+-fi
+-
+ ### Save the given $CFLAGS to allow user-override.
+ cf_user_CFLAGS="$CFLAGS"
+
+ ### Default install-location
+
+-echo "$as_me:1222: checking for prefix" >&5
++echo "$as_me:1203: 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*|netbsd*|freebsd*|linux*|cygwin*)
++ openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
+ prefix=/usr
+ ;;
+ *) prefix=$ac_default_prefix
+ ;;
+ esac
+ fi
+-echo "$as_me:1234: result: $prefix" >&5
++echo "$as_me:1215: result: $prefix" >&5
+ echo "${ECHO_T}$prefix" >&6
+
+ if test "x$prefix" = "xNONE" ; then
+-echo "$as_me:1238: checking for default include-directory" >&5
++echo "$as_me:1219: 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 \
+@@ -1258,7 +1239,7 @@
+ fi
+ test -n "$verbose" && echo " tested $cf_dir" 1>&6
+ done
+-echo "$as_me:1261: result: $includedir" >&5
++echo "$as_me:1242: result: $includedir" >&5
+ echo "${ECHO_T}$includedir" >&6
+ fi
+
+@@ -1271,7 +1252,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:1274: checking for $ac_word" >&5
++echo "$as_me:1255: 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
+@@ -1286,7 +1267,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:1289: found $ac_dir/$ac_word" >&5
++echo "$as_me:1270: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1294,10 +1275,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1297: result: $CC" >&5
++ echo "$as_me:1278: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1300: result: no" >&5
++ echo "$as_me:1281: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1306,7 +1287,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:1309: checking for $ac_word" >&5
++echo "$as_me:1290: 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
+@@ -1321,7 +1302,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:1324: found $ac_dir/$ac_word" >&5
++echo "$as_me:1305: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1329,10 +1310,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1332: result: $ac_ct_CC" >&5
++ echo "$as_me:1313: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1335: result: no" >&5
++ echo "$as_me:1316: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1345,7 +1326,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:1348: checking for $ac_word" >&5
++echo "$as_me:1329: 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
+@@ -1360,7 +1341,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:1363: found $ac_dir/$ac_word" >&5
++echo "$as_me:1344: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1368,10 +1349,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1371: result: $CC" >&5
++ echo "$as_me:1352: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1374: result: no" >&5
++ echo "$as_me:1355: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1380,7 +1361,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:1383: checking for $ac_word" >&5
++echo "$as_me:1364: 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
+@@ -1395,7 +1376,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:1398: found $ac_dir/$ac_word" >&5
++echo "$as_me:1379: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1403,10 +1384,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1406: result: $ac_ct_CC" >&5
++ echo "$as_me:1387: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1409: result: no" >&5
++ echo "$as_me:1390: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1419,7 +1400,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:1422: checking for $ac_word" >&5
++echo "$as_me:1403: 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
+@@ -1439,7 +1420,7 @@
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+-echo "$as_me:1442: found $ac_dir/$ac_word" >&5
++echo "$as_me:1423: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1461,10 +1442,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1464: result: $CC" >&5
++ echo "$as_me:1445: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1467: result: no" >&5
++ echo "$as_me:1448: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1475,7 +1456,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:1478: checking for $ac_word" >&5
++echo "$as_me:1459: 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
+@@ -1490,7 +1471,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:1493: found $ac_dir/$ac_word" >&5
++echo "$as_me:1474: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1498,10 +1479,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1501: result: $CC" >&5
++ echo "$as_me:1482: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1504: result: no" >&5
++ echo "$as_me:1485: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1514,7 +1495,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:1517: checking for $ac_word" >&5
++echo "$as_me:1498: 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
+@@ -1529,7 +1510,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:1532: found $ac_dir/$ac_word" >&5
++echo "$as_me:1513: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1537,10 +1518,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1540: result: $ac_ct_CC" >&5
++ echo "$as_me:1521: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1543: result: no" >&5
++ echo "$as_me:1524: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1552,32 +1533,32 @@
+
+ fi
+
+-test -z "$CC" && { { echo "$as_me:1555: error: no acceptable cc found in \$PATH" >&5
++test -z "$CC" && { { echo "$as_me:1536: 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:1560:" \
++echo "$as_me:1541:" \
+ "checking for C compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1563: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1544: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1566: \$? = $ac_status" >&5
++ echo "$as_me:1547: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1568: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1549: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1571: \$? = $ac_status" >&5
++ echo "$as_me:1552: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1573: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1554: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1576: \$? = $ac_status" >&5
++ echo "$as_me:1557: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1580 "configure"
++#line 1561 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1593,13 +1574,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:1596: checking for C compiler default output" >&5
++echo "$as_me:1577: 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:1599: \"$ac_link_default\"") >&5
++if { (eval echo "$as_me:1580: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+- echo "$as_me:1602: \$? = $ac_status" >&5
++ echo "$as_me:1583: \$? = $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
+@@ -1622,34 +1603,34 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1625: error: C compiler cannot create executables" >&5
++{ { echo "$as_me:1606: 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:1631: result: $ac_file" >&5
++echo "$as_me:1612: 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:1636: checking whether the C compiler works" >&5
++echo "$as_me:1617: 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:1642: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1623: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1645: \$? = $ac_status" >&5
++ echo "$as_me:1626: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+- { { echo "$as_me:1652: error: cannot run C compiled programs.
++ { { echo "$as_me:1633: 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;}
+@@ -1657,24 +1638,24 @@
+ fi
+ fi
+ fi
+-echo "$as_me:1660: result: yes" >&5
++echo "$as_me:1641: 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:1667: checking whether we are cross compiling" >&5
++echo "$as_me:1648: checking whether we are cross compiling" >&5
+ echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:1669: result: $cross_compiling" >&5
++echo "$as_me:1650: result: $cross_compiling" >&5
+ echo "${ECHO_T}$cross_compiling" >&6
+
+-echo "$as_me:1672: checking for executable suffix" >&5
++echo "$as_me:1653: checking for executable suffix" >&5
+ echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+-if { (eval echo "$as_me:1674: \"$ac_link\"") >&5
++if { (eval echo "$as_me:1655: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:1677: \$? = $ac_status" >&5
++ echo "$as_me:1658: \$? = $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
+@@ -1690,25 +1671,25 @@
+ esac
+ done
+ else
+- { { echo "$as_me:1693: error: cannot compute EXEEXT: cannot compile and link" >&5
++ { { echo "$as_me:1674: 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:1699: result: $ac_cv_exeext" >&5
++echo "$as_me:1680: 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:1705: checking for object suffix" >&5
++echo "$as_me:1686: 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 1711 "configure"
++#line 1692 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1720,10 +1701,10 @@
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:1723: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1704: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1726: \$? = $ac_status" >&5
++ echo "$as_me:1707: \$? = $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
+@@ -1735,24 +1716,24 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1738: error: cannot compute OBJEXT: cannot compile" >&5
++{ { echo "$as_me:1719: 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:1745: result: $ac_cv_objext" >&5
++echo "$as_me:1726: result: $ac_cv_objext" >&5
+ echo "${ECHO_T}$ac_cv_objext" >&6
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-echo "$as_me:1749: checking whether we are using the GNU C compiler" >&5
++echo "$as_me:1730: 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 1755 "configure"
++#line 1736 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1767,16 +1748,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1770: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1751: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1773: \$? = $ac_status" >&5
++ echo "$as_me:1754: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1776: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1757: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1779: \$? = $ac_status" >&5
++ echo "$as_me:1760: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -1788,19 +1769,19 @@
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:1791: result: $ac_cv_c_compiler_gnu" >&5
++echo "$as_me:1772: 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:1797: checking whether $CC accepts -g" >&5
++echo "$as_me:1778: 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 1803 "configure"
++#line 1784 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1812,16 +1793,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1815: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1796: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1818: \$? = $ac_status" >&5
++ echo "$as_me:1799: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1821: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1802: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1824: \$? = $ac_status" >&5
++ echo "$as_me:1805: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+ else
+@@ -1831,7 +1812,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1834: result: $ac_cv_prog_cc_g" >&5
++echo "$as_me:1815: 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
+@@ -1858,16 +1839,16 @@
+ #endif
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1861: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1842: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1864: \$? = $ac_status" >&5
++ echo "$as_me:1845: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1867: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1848: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1870: \$? = $ac_status" >&5
++ echo "$as_me:1851: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ ''\
+@@ -1879,7 +1860,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1882 "configure"
++#line 1863 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -1892,16 +1873,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1895: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1876: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1898: \$? = $ac_status" >&5
++ echo "$as_me:1879: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1901: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1882: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1904: \$? = $ac_status" >&5
++ echo "$as_me:1885: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -1911,7 +1892,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1914 "configure"
++#line 1895 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -1923,16 +1904,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1926: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1907: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1929: \$? = $ac_status" >&5
++ echo "$as_me:1910: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1932: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1913: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1935: \$? = $ac_status" >&5
++ echo "$as_me:1916: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -1961,98 +1942,20 @@
+
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+- echo "$as_me:1964: checking version of gcc" >&5
+-echo $ECHO_N "checking version of gcc... $ECHO_C" >&6
+- GCC_VERSION="`${CC} --version|head -1`"
+- echo "$as_me:1967: result: $GCC_VERSION" >&5
++ echo "$as_me:1945: checking version of $CC" >&5
++echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
++ GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
++ test -z "$GCC_VERSION" && GCC_VERSION=unknown
++ echo "$as_me:1949: result: $GCC_VERSION" >&5
+ echo "${ECHO_T}$GCC_VERSION" >&6
+ fi
+
+-# If we're cross-compiling, allow the user to override the tools and their
+-# options. The configure script is oriented toward identifying the target
+-# compiler, etc., but we need a host compiler to generate parts of the source.
+-BUILD_CC='$(CC)'
+-BUILD_CFLAGS='$(CFLAGS)'
+-BUILD_CPPFLAGS='$(CPPFLAGS)'
+-BUILD_LDFLAGS='$(LDFLAGS)'
+-BUILD_LIBS='$(LIBS)'
+-if test "$host_alias" != "$target_alias" ; then
+-
+-# Check whether --with-build-cc or --without-build-cc was given.
+-if test "${with_build_cc+set}" = set; then
+- withval="$with_build_cc"
+- BUILD_CC="$withval"
+-else
+- for ac_prog in $CC 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:1990: 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
+-else
+- if test -n "$BUILD_CC"; then
+- ac_cv_prog_BUILD_CC="$BUILD_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_BUILD_CC="$ac_prog"
+-echo "$as_me:2005: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-BUILD_CC=$ac_cv_prog_BUILD_CC
+-if test -n "$BUILD_CC"; then
+- echo "$as_me:2013: result: $BUILD_CC" >&5
+-echo "${ECHO_T}$BUILD_CC" >&6
+-else
+- echo "$as_me:2016: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- test -n "$BUILD_CC" && break
+-done
+-
+-fi;
+-
+-# Check whether --with-build-cflags or --without-build-cflags was given.
+-if test "${with_build_cflags+set}" = set; then
+- withval="$with_build_cflags"
+- BUILD_CFLAGS="$withval"
+-fi;
+-
+-# Check whether --with-build-cppflags or --without-build-cppflags was given.
+-if test "${with_build_cppflags+set}" = set; then
+- withval="$with_build_cppflags"
+- BUILD_CPPFLAGS="$withval"
+-fi;
+-
+-# Check whether --with-build-ldflags or --without-build-ldflags was given.
+-if test "${with_build_ldflags+set}" = set; then
+- withval="$with_build_ldflags"
+- BUILD_LDFLAGS="$withval"
+-fi;
+-
+-# Check whether --with-build-libs or --without-build-libs was given.
+-if test "${with_build_libs+set}" = set; then
+- withval="$with_build_libs"
+- BUILD_LIBS="$withval"
+-fi;
+-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
+-echo "$as_me:2055: checking how to run the C preprocessor" >&5
++echo "$as_me:1958: 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
+@@ -2073,18 +1976,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 2076 "configure"
++#line 1979 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2081: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:1984: \"$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:2087: \$? = $ac_status" >&5
++ echo "$as_me:1990: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2107,17 +2010,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2110 "configure"
++#line 2013 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2114: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2017: \"$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:2120: \$? = $ac_status" >&5
++ echo "$as_me:2023: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2154,7 +2057,7 @@
+ else
+ ac_cv_prog_CPP=$CPP
+ fi
+-echo "$as_me:2157: result: $CPP" >&5
++echo "$as_me:2060: result: $CPP" >&5
+ echo "${ECHO_T}$CPP" >&6
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -2164,18 +2067,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 2167 "configure"
++#line 2070 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2172: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2075: \"$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:2178: \$? = $ac_status" >&5
++ echo "$as_me:2081: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2198,17 +2101,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2201 "configure"
++#line 2104 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2205: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2108: \"$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:2211: \$? = $ac_status" >&5
++ echo "$as_me:2114: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2236,7 +2139,7 @@
+ if $ac_preproc_ok; then
+ :
+ else
+- { { echo "$as_me:2239: error: C preprocessor \"$CPP\" fails sanity check" >&5
++ { { echo "$as_me:2142: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -2248,17 +2151,17 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ if test $ac_cv_c_compiler_gnu = yes; then
+- echo "$as_me:2251: checking whether $CC needs -traditional" >&5
++ echo "$as_me:2154: 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 2258 "configure"
++#line 2161 "configure"
+ #include "confdefs.h"
+ #include <sgtty.h>
+-Autoconf TIOCGETP
++int Autoconf = TIOCGETP;
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "$ac_pattern" >/dev/null 2>&1; then
+@@ -2270,10 +2173,10 @@
+
+ if test $ac_cv_prog_gcc_traditional = no; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2273 "configure"
++#line 2176 "configure"
+ #include "confdefs.h"
+ #include <termio.h>
+-Autoconf TCGETA
++int Autoconf = TCGETA;
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "$ac_pattern" >/dev/null 2>&1; then
+@@ -2283,19 +2186,19 @@
+
+ fi
+ fi
+-echo "$as_me:2286: result: $ac_cv_prog_gcc_traditional" >&5
++echo "$as_me:2189: 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:2293: checking for POSIXized ISC" >&5
++echo "$as_me:2196: 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:2298: result: yes" >&5
++ echo "$as_me:2201: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ ISC=yes # If later tests want to check for ISC.
+
+@@ -2309,12 +2212,12 @@
+ CC="$CC -Xp"
+ fi
+ else
+- echo "$as_me:2312: result: no" >&5
++ echo "$as_me:2215: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ ISC=
+ fi
+
+-echo "$as_me:2317: checking for ${CC-cc} option to accept ANSI C" >&5
++echo "$as_me:2220: 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
+@@ -2366,11 +2269,11 @@
+
+ if test -n "$cf_new_cppflags" ; then
+
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+ fi
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2373 "configure"
++#line 2276 "configure"
+ #include "confdefs.h"
+
+ #ifndef CC_HAS_PROTOS
+@@ -2391,16 +2294,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2394: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2297: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2397: \$? = $ac_status" >&5
++ echo "$as_me:2300: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2400: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2303: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2403: \$? = $ac_status" >&5
++ echo "$as_me:2306: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ansi_cc="$cf_arg"; break
+ else
+@@ -2413,7 +2316,7 @@
+ CPPFLAGS="$cf_save_CPPFLAGS"
+
+ fi
+-echo "$as_me:2416: result: $cf_cv_ansi_cc" >&5
++echo "$as_me:2319: result: $cf_cv_ansi_cc" >&5
+ echo "${ECHO_T}$cf_cv_ansi_cc" >&6
+
+ if test "$cf_cv_ansi_cc" != "no"; then
+@@ -2446,7 +2349,7 @@
+
+ if test -n "$cf_new_cppflags" ; then
+
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+ fi
+
+ else
+@@ -2458,7 +2361,7 @@
+ fi
+
+ if test "$cf_cv_ansi_cc" = "no"; then
+- { { echo "$as_me:2461: error: Your compiler does not appear to recognize prototypes.
++ { { echo "$as_me:2364: 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
+@@ -2478,7 +2381,7 @@
+ CFLAGS="$CFLAGS -Zmt"
+ CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+ CXXFLAGS="$CXXFLAGS -Zmt"
+- LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
++ LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed -e "s%-Zexe%%g"`
+ PROG_EXT=".exe"
+ ;;
+ cygwin*)
+@@ -2497,7 +2400,7 @@
+ *) 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:2500: checking for $ac_word" >&5
++echo "$as_me:2403: 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
+@@ -2514,7 +2417,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
+- echo "$as_me:2517: found $ac_dir/$ac_word" >&5
++ echo "$as_me:2420: found $ac_dir/$ac_word" >&5
+ break
+ fi
+ done
+@@ -2525,17 +2428,17 @@
+ LDCONFIG=$ac_cv_path_LDCONFIG
+
+ if test -n "$LDCONFIG"; then
+- echo "$as_me:2528: result: $LDCONFIG" >&5
++ echo "$as_me:2431: result: $LDCONFIG" >&5
+ echo "${ECHO_T}$LDCONFIG" >&6
+ else
+- echo "$as_me:2531: result: no" >&5
++ echo "$as_me:2434: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ ;;
+ esac
+
+-echo "$as_me:2538: checking if you want to ensure bool is consistent with C++" >&5
++echo "$as_me:2441: 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.
+@@ -2545,12 +2448,13 @@
+ else
+ cf_with_cxx=yes
+ fi;
+-echo "$as_me:2548: result: $cf_with_cxx" >&5
++echo "$as_me:2451: 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'
+@@ -2561,7 +2465,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:2564: checking for $ac_word" >&5
++echo "$as_me:2468: 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
+@@ -2576,7 +2480,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+-echo "$as_me:2579: found $ac_dir/$ac_word" >&5
++echo "$as_me:2483: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2584,10 +2488,10 @@
+ fi
+ CXX=$ac_cv_prog_CXX
+ if test -n "$CXX"; then
+- echo "$as_me:2587: result: $CXX" >&5
++ echo "$as_me:2491: result: $CXX" >&5
+ echo "${ECHO_T}$CXX" >&6
+ else
+- echo "$as_me:2590: result: no" >&5
++ echo "$as_me:2494: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2600,7 +2504,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:2603: checking for $ac_word" >&5
++echo "$as_me:2507: 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
+@@ -2615,7 +2519,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+-echo "$as_me:2618: found $ac_dir/$ac_word" >&5
++echo "$as_me:2522: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2623,10 +2527,10 @@
+ fi
+ ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+ if test -n "$ac_ct_CXX"; then
+- echo "$as_me:2626: result: $ac_ct_CXX" >&5
++ echo "$as_me:2530: result: $ac_ct_CXX" >&5
+ echo "${ECHO_T}$ac_ct_CXX" >&6
+ else
+- echo "$as_me:2629: result: no" >&5
++ echo "$as_me:2533: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2638,32 +2542,32 @@
+ fi
+
+ # Provide some information about the compiler.
+-echo "$as_me:2641:" \
++echo "$as_me:2545:" \
+ "checking for C++ compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:2644: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2548: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:2647: \$? = $ac_status" >&5
++ echo "$as_me:2551: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:2649: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2553: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:2652: \$? = $ac_status" >&5
++ echo "$as_me:2556: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:2654: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2558: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:2657: \$? = $ac_status" >&5
++ echo "$as_me:2561: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+-echo "$as_me:2660: checking whether we are using the GNU C++ compiler" >&5
++echo "$as_me:2564: 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 2666 "configure"
++#line 2570 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -2678,16 +2582,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2681: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2585: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2684: \$? = $ac_status" >&5
++ echo "$as_me:2588: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2687: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2591: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2690: \$? = $ac_status" >&5
++ echo "$as_me:2594: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -2699,19 +2603,19 @@
+ ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:2702: result: $ac_cv_cxx_compiler_gnu" >&5
++echo "$as_me:2606: 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:2708: checking whether $CXX accepts -g" >&5
++echo "$as_me:2612: 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 2714 "configure"
++#line 2618 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -2723,16 +2627,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2726: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2630: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2729: \$? = $ac_status" >&5
++ echo "$as_me:2633: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2732: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2636: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2735: \$? = $ac_status" >&5
++ echo "$as_me:2639: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cxx_g=yes
+ else
+@@ -2742,7 +2646,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:2745: result: $ac_cv_prog_cxx_g" >&5
++echo "$as_me:2649: 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
+@@ -2769,7 +2673,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2772 "configure"
++#line 2676 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -2782,16 +2686,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2785: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2689: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2788: \$? = $ac_status" >&5
++ echo "$as_me:2692: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2791: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2695: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2794: \$? = $ac_status" >&5
++ echo "$as_me:2698: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -2801,7 +2705,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2804 "configure"
++#line 2708 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -2813,16 +2717,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2816: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2720: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2819: \$? = $ac_status" >&5
++ echo "$as_me:2723: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2822: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2726: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2825: \$? = $ac_status" >&5
++ echo "$as_me:2729: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -2844,26 +2748,72 @@
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
++ # autoconf 2.5x removed the error - by hardcoding it to g++.
++ 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:2755: 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
++else
++ case $CXX in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_CXX="$CXX" # 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_CXX="$ac_dir/$ac_word"
++ echo "$as_me:2772: found $ac_dir/$ac_word" >&5
++ break
++fi
++done
++
++ ;;
++esac
++fi
++CXX=$ac_cv_path_CXX
++
++if test -n "$CXX"; then
++ echo "$as_me:2783: result: $CXX" >&5
++echo "${ECHO_T}$CXX" >&6
++else
++ echo "$as_me:2786: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ fi
++ if test "$CXX" = "g++" ; then
++ { echo "$as_me:2792: WARNING: ignoring hardcoded g++" >&5
++echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
++ cf_with_cxx=no; CXX=""; GXX="";
+ fi
++fi
+
+ GXX_VERSION=none
+ if test "$GXX" = yes; then
+- echo "$as_me:2851: checking version of g++" >&5
++ echo "$as_me:2800: checking version of g++" >&5
+ echo $ECHO_N "checking version of g++... $ECHO_C" >&6
+- GXX_VERSION="`${CXX-g++} --version|head -1`"
+- echo "$as_me:2854: result: $GXX_VERSION" >&5
++ GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
++ echo "$as_me:2803: result: $GXX_VERSION" >&5
+ echo "${ECHO_T}$GXX_VERSION" >&6
+- case $GXX_VERSION in
+- 1*|2.[0-6]*)
+- GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
+- cf_cxx_library=no
+- { echo "$as_me:2860: WARNING: templates do not work" >&5
+-echo "$as_me: WARNING: templates do not work" >&2;}
+- ;;
+- esac
+ fi
+
+-echo "$as_me:2866: checking if you want to build C++ binding and demo" >&5
++case $GXX_VERSION in
++1*|2.[0-6]*)
++ GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
++ cf_cxx_library=no
++ { echo "$as_me:2811: WARNING: templates do not work" >&5
++echo "$as_me: WARNING: templates do not work" >&2;}
++ ;;
++esac
++
++echo "$as_me:2816: 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.
+@@ -2873,10 +2823,10 @@
+ else
+ cf_with_cxx_binding=$cf_with_cxx
+ fi;
+-echo "$as_me:2876: result: $cf_with_cxx_binding" >&5
++echo "$as_me:2826: result: $cf_with_cxx_binding" >&5
+ echo "${ECHO_T}$cf_with_cxx_binding" >&6
+
+-echo "$as_me:2879: checking if you want to build with Ada95" >&5
++echo "$as_me:2829: checking if you want to build with Ada95" >&5
+ echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
+
+ # Check whether --with-ada or --without-ada was given.
+@@ -2886,10 +2836,10 @@
+ else
+ cf_with_ada=yes
+ fi;
+-echo "$as_me:2889: result: $cf_with_ada" >&5
++echo "$as_me:2839: result: $cf_with_ada" >&5
+ echo "${ECHO_T}$cf_with_ada" >&6
+
+-echo "$as_me:2892: checking if you want to build programs such as tic" >&5
++echo "$as_me:2842: 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.
+@@ -2899,10 +2849,10 @@
+ else
+ cf_with_progs=yes
+ fi;
+-echo "$as_me:2902: result: $cf_with_progs" >&5
++echo "$as_me:2852: result: $cf_with_progs" >&5
+ echo "${ECHO_T}$cf_with_progs" >&6
+
+-echo "$as_me:2905: checking if you wish to install curses.h" >&5
++echo "$as_me:2855: 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.
+@@ -2912,7 +2862,7 @@
+ else
+ with_curses_h=yes
+ fi;
+-echo "$as_me:2915: result: $with_curses_h" >&5
++echo "$as_me:2865: result: $with_curses_h" >&5
+ echo "${ECHO_T}$with_curses_h" >&6
+
+ modules_to_build="ncurses"
+@@ -2938,7 +2888,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:2941: checking for $ac_word" >&5
++echo "$as_me:2891: 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
+@@ -2953,7 +2903,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AWK="$ac_prog"
+-echo "$as_me:2956: found $ac_dir/$ac_word" >&5
++echo "$as_me:2906: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2961,17 +2911,17 @@
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+- echo "$as_me:2964: result: $AWK" >&5
++ echo "$as_me:2914: result: $AWK" >&5
+ echo "${ECHO_T}$AWK" >&6
+ else
+- echo "$as_me:2967: result: no" >&5
++ echo "$as_me:2917: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ test -n "$AWK" && break
+ done
+
+-echo "$as_me:2974: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "$as_me:2924: 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
+@@ -2991,11 +2941,11 @@
+ rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+- echo "$as_me:2994: result: yes" >&5
++ echo "$as_me:2944: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ SET_MAKE=
+ else
+- echo "$as_me:2998: result: no" >&5
++ echo "$as_me:2948: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -3012,7 +2962,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:3015: checking for a BSD compatible install" >&5
++echo "$as_me:2965: 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
+@@ -3061,7 +3011,7 @@
+ INSTALL=$ac_install_sh
+ fi
+ fi
+-echo "$as_me:3064: result: $INSTALL" >&5
++echo "$as_me:3014: result: $INSTALL" >&5
+ echo "${ECHO_T}$INSTALL" >&6
+
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+@@ -3076,13 +3026,13 @@
+ /*)
+ ;;
+ *)
+- cf_dir=`echo $INSTALL | sed -e 's:/[^/]*$::'`
++ cf_dir=`echo $INSTALL | sed -e 's%/[^/]*$%%'`
+ test -z "$cf_dir" && cf_dir=.
+- INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
++ INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
+ ;;
+ esac
+
+-echo "$as_me:3085: checking for long file names" >&5
++echo "$as_me:3035: 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
+@@ -3121,7 +3071,7 @@
+ rm -rf $ac_xdir 2>/dev/null
+ done
+ fi
+-echo "$as_me:3124: result: $ac_cv_sys_long_file_names" >&5
++echo "$as_me:3074: 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
+
+@@ -3131,7 +3081,7 @@
+
+ fi
+
+-echo "$as_me:3134: checking if filesystem supports mixed-case filenames" >&5
++echo "$as_me:3084: 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
+@@ -3147,27 +3097,27 @@
+ rm -f conftest CONFTEST
+
+ fi
+-echo "$as_me:3150: result: $cf_cv_mixedcase" >&5
++echo "$as_me:3100: result: $cf_cv_mixedcase" >&5
+ echo "${ECHO_T}$cf_cv_mixedcase" >&6
+ test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+ EOF
+
+-echo "$as_me:3156: checking whether ln -s works" >&5
++echo "$as_me:3106: 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:3160: result: yes" >&5
++ echo "$as_me:3110: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+- echo "$as_me:3163: result: no, using $LN_S" >&5
++ echo "$as_me:3113: result: no, using $LN_S" >&5
+ echo "${ECHO_T}no, using $LN_S" >&6
+ fi
+
+ 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:3170: checking for $ac_word" >&5
++echo "$as_me:3120: 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
+@@ -3182,7 +3132,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:3185: found $ac_dir/$ac_word" >&5
++echo "$as_me:3135: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3190,10 +3140,10 @@
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+- echo "$as_me:3193: result: $RANLIB" >&5
++ echo "$as_me:3143: result: $RANLIB" >&5
+ echo "${ECHO_T}$RANLIB" >&6
+ else
+- echo "$as_me:3196: result: no" >&5
++ echo "$as_me:3146: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3202,7 +3152,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:3205: checking for $ac_word" >&5
++echo "$as_me:3155: 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
+@@ -3217,7 +3167,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:3220: found $ac_dir/$ac_word" >&5
++echo "$as_me:3170: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3226,10 +3176,10 @@
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+- echo "$as_me:3229: result: $ac_ct_RANLIB" >&5
++ echo "$as_me:3179: result: $ac_ct_RANLIB" >&5
+ echo "${ECHO_T}$ac_ct_RANLIB" >&6
+ else
+- echo "$as_me:3232: result: no" >&5
++ echo "$as_me:3182: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3240,7 +3190,7 @@
+
+ # Extract the first word of "ctags", so it can be a program name with args.
+ set dummy ctags; ac_word=$2
+-echo "$as_me:3243: checking for $ac_word" >&5
++echo "$as_me:3193: 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
+@@ -3255,7 +3205,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:3258: found $ac_dir/$ac_word" >&5
++echo "$as_me:3208: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3264,17 +3214,17 @@
+ fi
+ MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
+ if test -n "$MAKE_LOWER_TAGS"; then
+- echo "$as_me:3267: result: $MAKE_LOWER_TAGS" >&5
++ echo "$as_me:3217: result: $MAKE_LOWER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
+ else
+- echo "$as_me:3270: result: no" >&5
++ echo "$as_me:3220: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ if test "$cf_cv_mixedcase" = yes ; then
+ # Extract the first word of "etags", so it can be a program name with args.
+ set dummy etags; ac_word=$2
+-echo "$as_me:3277: checking for $ac_word" >&5
++echo "$as_me:3227: 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
+@@ -3289,7 +3239,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:3292: found $ac_dir/$ac_word" >&5
++echo "$as_me:3242: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3298,10 +3248,10 @@
+ fi
+ MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
+ if test -n "$MAKE_UPPER_TAGS"; then
+- echo "$as_me:3301: result: $MAKE_UPPER_TAGS" >&5
++ echo "$as_me:3251: result: $MAKE_UPPER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
+ else
+- echo "$as_me:3304: result: no" >&5
++ echo "$as_me:3254: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3325,7 +3275,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:3328: checking for $ac_word" >&5
++echo "$as_me:3278: 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
+@@ -3340,7 +3290,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LINT="$ac_prog"
+-echo "$as_me:3343: found $ac_dir/$ac_word" >&5
++echo "$as_me:3293: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3348,10 +3298,10 @@
+ fi
+ LINT=$ac_cv_prog_LINT
+ if test -n "$LINT"; then
+- echo "$as_me:3351: result: $LINT" >&5
++ echo "$as_me:3301: result: $LINT" >&5
+ echo "${ECHO_T}$LINT" >&6
+ else
+- echo "$as_me:3354: result: no" >&5
++ echo "$as_me:3304: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3362,7 +3312,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:3365: checking for $ac_word" >&5
++echo "$as_me:3315: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAN+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3377,7 +3327,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAN="$ac_prog"
+-echo "$as_me:3380: found $ac_dir/$ac_word" >&5
++echo "$as_me:3330: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3385,54 +3335,172 @@
+ fi
+ MAN=$ac_cv_prog_MAN
+ if test -n "$MAN"; then
+- echo "$as_me:3388: result: $MAN" >&5
++ echo "$as_me:3338: result: $MAN" >&5
+ echo "${ECHO_T}$MAN" >&6
+ else
+- echo "$as_me:3391: result: no" >&5
++ echo "$as_me:3341: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ test -n "$MAN" && break
+ done
+
+-if test "${cf_cv_subst_LD+set}" = set; then
++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:3351: 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
+ else
++ if test -n "$LD"; then
++ ac_cv_prog_LD="$LD" # 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_LD="${ac_tool_prefix}ld"
++echo "$as_me:3366: found $ac_dir/$ac_word" >&5
++break
++done
+
+-echo "$as_me:3402: checking for loader (symbol LD)" >&5
+-echo $ECHO_N "checking for loader (symbol LD)... $ECHO_C" >&6
+-test -z "$LD" && LD=ld
+-echo "$as_me:3405: result: $LD" >&5
++fi
++fi
++LD=$ac_cv_prog_LD
++if test -n "$LD"; then
++ echo "$as_me:3374: result: $LD" >&5
+ echo "${ECHO_T}$LD" >&6
++else
++ echo "$as_me:3377: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-cf_cv_subst_LD=$LD
+ fi
++if test -z "$ac_cv_prog_LD"; then
++ 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:3386: 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
++else
++ if test -n "$ac_ct_LD"; then
++ ac_cv_prog_ac_ct_LD="$ac_ct_LD" # 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_LD="ld"
++echo "$as_me:3401: found $ac_dir/$ac_word" >&5
++break
++done
+
+-LD=${cf_cv_subst_LD}
++ test -z "$ac_cv_prog_ac_ct_LD" && ac_cv_prog_ac_ct_LD="ld"
++fi
++fi
++ac_ct_LD=$ac_cv_prog_ac_ct_LD
++if test -n "$ac_ct_LD"; then
++ echo "$as_me:3410: result: $ac_ct_LD" >&5
++echo "${ECHO_T}$ac_ct_LD" >&6
++else
++ echo "$as_me:3413: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-if test "${cf_cv_subst_AR+set}" = set; then
++ LD=$ac_ct_LD
++else
++ LD="$ac_cv_prog_LD"
++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:3425: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
++ if test -n "$AR"; then
++ ac_cv_prog_AR="$AR" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_AR="${ac_tool_prefix}ar"
++echo "$as_me:3440: found $ac_dir/$ac_word" >&5
++break
++done
+
+-echo "$as_me:3417: checking for archiver (symbol AR)" >&5
+-echo $ECHO_N "checking for archiver (symbol AR)... $ECHO_C" >&6
+-test -z "$AR" && AR=ar
+-echo "$as_me:3420: result: $AR" >&5
++fi
++fi
++AR=$ac_cv_prog_AR
++if test -n "$AR"; then
++ echo "$as_me:3448: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
++else
++ echo "$as_me:3451: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-cf_cv_subst_AR=$AR
++fi
++if test -z "$ac_cv_prog_AR"; then
++ ac_ct_AR=$AR
++ # Extract the first word of "ar", so it can be a program name with args.
++set dummy ar; ac_word=$2
++echo "$as_me:3460: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_AR"; then
++ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_AR="ar"
++echo "$as_me:3475: found $ac_dir/$ac_word" >&5
++break
++done
++
++ test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="ar"
++fi
++fi
++ac_ct_AR=$ac_cv_prog_ac_ct_AR
++if test -n "$ac_ct_AR"; then
++ echo "$as_me:3484: result: $ac_ct_AR" >&5
++echo "${ECHO_T}$ac_ct_AR" >&6
++else
++ echo "$as_me:3487: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+
+-AR=${cf_cv_subst_AR}
++ AR=$ac_ct_AR
++else
++ AR="$ac_cv_prog_AR"
++fi
+
+ if test "${cf_cv_subst_AR_OPTS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-echo "$as_me:3432: checking for archiver options (symbol AR_OPTS)" >&5
++echo "$as_me:3500: checking for archiver options (symbol AR_OPTS)" >&5
+ echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
+ test -z "$AR_OPTS" && AR_OPTS=rv
+-echo "$as_me:3435: result: $AR_OPTS" >&5
++echo "$as_me:3503: result: $AR_OPTS" >&5
+ echo "${ECHO_T}$AR_OPTS" >&6
+
+ cf_cv_subst_AR_OPTS=$AR_OPTS
+@@ -3440,7 +3508,7 @@
+
+ AR_OPTS=${cf_cv_subst_AR_OPTS}
+
+-echo "$as_me:3443: checking for makeflags variable" >&5
++echo "$as_me:3511: 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
+@@ -3473,10 +3541,10 @@
+ rm -f cf_makeflags.tmp
+
+ fi
+-echo "$as_me:3476: result: $cf_cv_makeflags" >&5
++echo "$as_me:3544: result: $cf_cv_makeflags" >&5
+ echo "${ECHO_T}$cf_cv_makeflags" >&6
+
+-echo "$as_me:3479: checking if you have specified an install-prefix" >&5
++echo "$as_me:3547: 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.
+@@ -3489,17 +3557,114 @@
+ ;;
+ esac
+ fi;
+-echo "$as_me:3492: result: $DESTDIR" >&5
++echo "$as_me:3560: result: $DESTDIR" >&5
+ echo "${ECHO_T}$DESTDIR" >&6
+
+ ###############################################################################
+
++# If we're cross-compiling, allow the user to override the tools and their
++# options. The configure script is oriented toward identifying the host
++# compiler, etc., but we need a build compiler to generate parts of the source.
++: ${BUILD_CC:='$(CC)'}
++: ${BUILD_CFLAGS:='$(CFLAGS)'}
++: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
++: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
++: ${BUILD_LIBS:='$(LIBS)'}
++if test "$cross_compiling" = yes ; then
++
++# Check whether --with-build-cc or --without-build-cc was given.
++if test "${with_build_cc+set}" = set; then
++ withval="$with_build_cc"
++ BUILD_CC="$withval"
++else
++ for ac_prog in $CC 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:3584: 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
++else
++ if test -n "$BUILD_CC"; then
++ ac_cv_prog_BUILD_CC="$BUILD_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_BUILD_CC="$ac_prog"
++echo "$as_me:3599: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++BUILD_CC=$ac_cv_prog_BUILD_CC
++if test -n "$BUILD_CC"; then
++ echo "$as_me:3607: result: $BUILD_CC" >&5
++echo "${ECHO_T}$BUILD_CC" >&6
++else
++ echo "$as_me:3610: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$BUILD_CC" && break
++done
++
++fi;
++
++# Check whether --with-build-cflags or --without-build-cflags was given.
++if test "${with_build_cflags+set}" = set; then
++ withval="$with_build_cflags"
++ BUILD_CFLAGS="$withval"
++fi;
++
++# Check whether --with-build-cppflags or --without-build-cppflags was given.
++if test "${with_build_cppflags+set}" = set; then
++ withval="$with_build_cppflags"
++ BUILD_CPPFLAGS="$withval"
++fi;
++
++# Check whether --with-build-ldflags or --without-build-ldflags was given.
++if test "${with_build_ldflags+set}" = set; then
++ withval="$with_build_ldflags"
++ BUILD_LDFLAGS="$withval"
++fi;
++
++# Check whether --with-build-libs or --without-build-libs was given.
++if test "${with_build_libs+set}" = set; then
++ withval="$with_build_libs"
++ BUILD_LIBS="$withval"
++fi;
++fi
++
++###############################################################################
++
+ ### Options to allow the user to specify the set of libraries which are used.
+ ### Use "--without-normal --with-shared" to allow the default model to be
+ ### shared, for example.
+ cf_list_models=""
+
+-echo "$as_me:3502: checking if you want to build libraries with libtool" >&5
++LIBTOOL=
++
++# common library maintenance symbols that are convenient for libtool scripts:
++LIB_CREATE='$(AR) -cr'
++LIB_OBJECT='$(OBJECTS)'
++LIB_SUFFIX=.a
++LIB_PREP="$RANLIB"
++
++# symbols used to prop libtool up to enable it to determine what it should be
++# doing:
++LIB_CLEAN=
++LIB_COMPILE=
++LIB_LINK=
++LIB_INSTALL=
++LIB_UNINSTALL=
++
++echo "$as_me:3667: 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.
+@@ -3509,16 +3674,131 @@
+ else
+ with_libtool=no
+ fi;
+-echo "$as_me:3512: result: $with_libtool" >&5
++echo "$as_me:3677: result: $with_libtool" >&5
+ echo "${ECHO_T}$with_libtool" >&6
+-if test "$with_libtool" = "yes"; then
+- cf_list_models="$cf_list_models libtool"
+- test -z "$LIBTOOL" && LIBTOOL=libtool
++if test "$with_libtool" != "no"; then
++ if test "$with_libtool" != "yes" ; then
++
++case ".$with_libtool" in #(vi
++.\$\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
++ ;;
++.\${*prefix}*) #(vi
++ eval with_libtool="$with_libtool"
++ case ".$with_libtool" in #(vi
++ .NONE/*)
++ with_libtool=`echo $with_libtool | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++ esac
++ ;; #(vi
++.NONE/*)
++ with_libtool=`echo $with_libtool | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++*)
++ { { echo "$as_me:3701: error: expected a pathname, not \"$with_libtool\"" >&5
++echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
++ { (exit 1); exit 1; }; }
++ ;;
++esac
++
++ 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:3711: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_path_LIBTOOL+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ case $LIBTOOL in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_LIBTOOL="$LIBTOOL" # 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_LIBTOOL="$ac_dir/$ac_word"
++ echo "$as_me:3728: found $ac_dir/$ac_word" >&5
++ break
++fi
++done
++
++ ;;
++esac
++fi
++LIBTOOL=$ac_cv_path_LIBTOOL
++
++if test -n "$LIBTOOL"; then
++ echo "$as_me:3739: result: $LIBTOOL" >&5
++echo "${ECHO_T}$LIBTOOL" >&6
++else
++ echo "$as_me:3742: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ fi
++ if test -z "$LIBTOOL" ; then
++ { { echo "$as_me:3748: error: Cannot find libtool" >&5
++echo "$as_me: error: Cannot find libtool" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++
++ LIB_CREATE='$(LIBTOOL) --mode=link $(CC) -rpath $(DESTDIR)$(libdir) -version-info `cut -f1 $(srcdir)/VERSION` -o'
++ LIB_OBJECT='$(OBJECTS:.o=.lo)'
++ LIB_SUFFIX=.la
++ LIB_CLEAN='$(LIBTOOL) --mode=clean'
++ LIB_COMPILE='$(LIBTOOL) --mode=compile'
++ LIB_LINK='$(LIBTOOL) --mode=link'
++ LIB_INSTALL='$(LIBTOOL) --mode=install'
++ LIB_UNINSTALL='$(LIBTOOL) --mode=uninstall'
++ LIB_PREP=:
++
++ # Show the version of libtool
++ echo "$as_me:3764: 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.
++ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
++ echo "$as_me:3771: 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:3774: error: This is not libtool" >&5
++echo "$as_me: error: This is not libtool" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++
++ # special hack to add --tag option for C++ compiler
++ case $cf_cv_libtool_version in
++ 1.[5-9]*|[2-9]*)
++ LIBTOOL_CXX="$LIBTOOL --tag=CXX"
++ ;;
++ *)
++ LIBTOOL_CXX="$LIBTOOL"
++ ;;
++ esac
+ else
+ LIBTOOL=""
++ LIBTOOL_CXX=""
+ fi
+
+-echo "$as_me:3521: checking if you want to build shared libraries" >&5
++test -z "$LIBTOOL" && ECHO_LT=
++
++if test "$with_libtool" != "no" ; then
++
++cf_list_models="$cf_list_models libtool"
++
++else
++
++echo "$as_me:3801: 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.
+@@ -3528,11 +3808,11 @@
+ else
+ with_shared=no
+ fi;
+-echo "$as_me:3531: result: $with_shared" >&5
++echo "$as_me:3811: result: $with_shared" >&5
+ echo "${ECHO_T}$with_shared" >&6
+ test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
+
+-echo "$as_me:3535: checking if you want to build static libraries" >&5
++echo "$as_me:3815: 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.
+@@ -3542,11 +3822,11 @@
+ else
+ with_normal=yes
+ fi;
+-echo "$as_me:3545: result: $with_normal" >&5
++echo "$as_me:3825: result: $with_normal" >&5
+ echo "${ECHO_T}$with_normal" >&6
+ test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
+
+-echo "$as_me:3549: checking if you want to build debug libraries" >&5
++echo "$as_me:3829: 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.
+@@ -3556,11 +3836,11 @@
+ else
+ with_debug=yes
+ fi;
+-echo "$as_me:3559: result: $with_debug" >&5
++echo "$as_me:3839: result: $with_debug" >&5
+ echo "${ECHO_T}$with_debug" >&6
+ test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
+
+-echo "$as_me:3563: checking if you want to build profiling libraries" >&5
++echo "$as_me:3843: 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.
+@@ -3570,25 +3850,27 @@
+ else
+ with_profile=no
+ fi;
+-echo "$as_me:3573: result: $with_profile" >&5
++echo "$as_me:3853: result: $with_profile" >&5
+ echo "${ECHO_T}$with_profile" >&6
+ test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
+
++fi
++
+ ###############################################################################
+
+-echo "$as_me:3579: checking for specified models" >&5
++echo "$as_me:3861: 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" = "yes" && cf_list_models=libtool
+-echo "$as_me:3583: result: $cf_list_models" >&5
++test "$with_libtool" != "no" && cf_list_models=libtool
++echo "$as_me:3865: 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:3588: checking for default model" >&5
++echo "$as_me:3870: 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:3591: result: $DFT_LWR_MODEL" >&5
++DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
++echo "$as_me:3873: result: $DFT_LWR_MODEL" >&5
+ echo "${ECHO_T}$DFT_LWR_MODEL" >&6
+
+ DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+@@ -3612,7 +3894,7 @@
+
+ ###############################################################################
+
+-echo "$as_me:3615: checking if you want to build a separate terminfo library" >&5
++echo "$as_me:3897: 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.
+@@ -3622,11 +3904,12 @@
+ else
+ with_termlib=no
+ fi;
+-echo "$as_me:3625: result: $with_termlib" >&5
++echo "$as_me:3907: result: $with_termlib" >&5
+ echo "${ECHO_T}$with_termlib" >&6
+
+ ### Checks for special libraries, must be done up-front.
+-echo "$as_me:3629: checking if you want to link with dbmalloc for testing" >&5
++
++echo "$as_me:3912: checking if you want to link with dbmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to link with dbmalloc for testing... $ECHO_C" >&6
+
+ # Check whether --with-dbmalloc or --without-dbmalloc was given.
+@@ -3636,11 +3919,11 @@
+ else
+ with_dbmalloc=no
+ fi;
+-echo "$as_me:3639: result: $with_dbmalloc" >&5
++echo "$as_me:3922: result: $with_dbmalloc" >&5
+ echo "${ECHO_T}$with_dbmalloc" >&6
+-if test "$with_dbmalloc" = yes ; then
++if test $with_dbmalloc = yes ; then
+
+-echo "$as_me:3643: checking for debug_malloc in -ldbmalloc" >&5
++echo "$as_me:3926: 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
+@@ -3648,7 +3931,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldbmalloc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3651 "configure"
++#line 3934 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3667,16 +3950,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3670: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3953: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3673: \$? = $ac_status" >&5
++ echo "$as_me:3956: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3676: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3959: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3679: \$? = $ac_status" >&5
++ echo "$as_me:3962: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dbmalloc_debug_malloc=yes
+ else
+@@ -3687,7 +3970,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3690: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
++echo "$as_me:3973: 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
+@@ -3700,7 +3983,7 @@
+
+ fi
+
+-echo "$as_me:3703: checking if you want to link with dmalloc for testing" >&5
++echo "$as_me:3986: checking if you want to link with dmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to link with dmalloc for testing... $ECHO_C" >&6
+
+ # Check whether --with-dmalloc or --without-dmalloc was given.
+@@ -3710,11 +3993,11 @@
+ else
+ with_dmalloc=no
+ fi;
+-echo "$as_me:3713: result: $with_dmalloc" >&5
++echo "$as_me:3996: result: $with_dmalloc" >&5
+ echo "${ECHO_T}$with_dmalloc" >&6
+-if test "$with_dmalloc" = yes ; then
++if test $with_dmalloc = yes ; then
+
+-echo "$as_me:3717: checking for dmalloc_debug in -ldmalloc" >&5
++echo "$as_me:4000: 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
+@@ -3722,7 +4005,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldmalloc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3725 "configure"
++#line 4008 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3741,16 +4024,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3744: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4027: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3747: \$? = $ac_status" >&5
++ echo "$as_me:4030: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3750: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4033: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3753: \$? = $ac_status" >&5
++ echo "$as_me:4036: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dmalloc_dmalloc_debug=yes
+ else
+@@ -3761,7 +4044,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3764: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
++echo "$as_me:4047: 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
+@@ -3775,7 +4058,7 @@
+ fi
+
+ SHLIB_LIST=""
+-echo "$as_me:3778: checking if you want to link with the gpm mouse library" >&5
++echo "$as_me:4061: 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.
+@@ -3785,10 +4068,10 @@
+ else
+ with_gpm=no
+ fi;
+-echo "$as_me:3788: result: $with_gpm" >&5
++echo "$as_me:4071: result: $with_gpm" >&5
+ echo "${ECHO_T}$with_gpm" >&6
+ if test "$with_gpm" = yes ; then
+- echo "$as_me:3791: checking for Gpm_Open in -lgpm" >&5
++ echo "$as_me:4074: 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
+@@ -3796,7 +4079,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3799 "configure"
++#line 4082 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3815,16 +4098,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3818: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4101: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3821: \$? = $ac_status" >&5
++ echo "$as_me:4104: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3824: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4107: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3827: \$? = $ac_status" >&5
++ echo "$as_me:4110: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -3835,7 +4118,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3838: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:4121: 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
+
+@@ -3848,23 +4131,23 @@
+ for ac_header in gpm.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:3851: checking for $ac_header" >&5
++echo "$as_me:4134: 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 3857 "configure"
++#line 4140 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:3861: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4144: \"$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:3867: \$? = $ac_status" >&5
++ echo "$as_me:4150: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -3883,7 +4166,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:3886: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:4169: 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
+@@ -3894,12 +4177,76 @@
+ done
+
+ else
+- { echo "$as_me:3897: WARNING: Cannot link with gpm library - read the FAQ" >&5
++ { echo "$as_me:4180: WARNING: Cannot link with gpm library - read the FAQ" >&5
+ echo "$as_me: WARNING: Cannot link with gpm library - read the FAQ" >&2;}
+ fi
+
+ fi
+
++# not everyone has "test -c"
++if test -c /dev/sysmouse 2>/dev/null ; then
++echo "$as_me:4188: 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.
++if test "${with_sysmouse+set}" = set; then
++ withval="$with_sysmouse"
++ cf_with_sysmouse=$withval
++else
++ cf_with_sysmouse=maybe
++fi;
++ if test "$cf_with_sysmouse" != no ; then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 4200 "configure"
++#include "confdefs.h"
++
++#include <osreldate.h>
++#if (__FreeBSD_version >= 400017)
++#include <sys/consio.h>
++#include <sys/fbio.h>
++#else
++#include <machine/console.h>
++#endif
++
++int
++main ()
++{
++
++ struct mouse_info the_mouse;
++ ioctl(0, CONS_MOUSECTL, &the_mouse);
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:4223: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:4226: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:4229: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:4232: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_with_sysmouse=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_with_sysmouse=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ fi
++echo "$as_me:4242: result: $cf_with_sysmouse" >&5
++echo "${ECHO_T}$cf_with_sysmouse" >&6
++test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
++#define USE_SYSMOUSE 1
++EOF
++
++fi
++
+ 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=''
+@@ -3910,7 +4257,7 @@
+ test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
+ fi
+
+-echo "$as_me:3913: checking for default loader flags" >&5
++echo "$as_me:4260: 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='' ;;
+@@ -3919,10 +4266,10 @@
+ profile) LD_MODEL='-pg';;
+ shared) LD_MODEL='' ;;
+ esac
+-echo "$as_me:3922: result: $LD_MODEL" >&5
++echo "$as_me:4269: result: $LD_MODEL" >&5
+ echo "${ECHO_T}$LD_MODEL" >&6
+
+-echo "$as_me:3925: checking if rpath option should be used" >&5
++echo "$as_me:4272: 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.
+@@ -3932,7 +4279,7 @@
+ else
+ cf_cv_ld_rpath=no
+ fi;
+-echo "$as_me:3935: result: $cf_cv_ld_rpath" >&5
++echo "$as_me:4282: result: $cf_cv_ld_rpath" >&5
+ echo "${ECHO_T}$cf_cv_ld_rpath" >&6
+
+ LOCAL_LDFLAGS=
+@@ -3942,7 +4289,7 @@
+
+ cf_cv_do_symlinks=no
+
+- echo "$as_me:3945: checking if release/abi version should be used for shared libs" >&5
++ echo "$as_me:4292: 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.
+@@ -3957,7 +4304,7 @@
+ cf_cv_shlib_version=$withval
+ ;;
+ *)
+- { { echo "$as_me:3960: error: option value must be one of: rel, abi, auto or no" >&5
++ { { echo "$as_me:4307: 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; }; }
+ ;;
+@@ -3966,7 +4313,7 @@
+ else
+ cf_cv_shlib_version=auto
+ fi;
+- echo "$as_me:3969: result: $cf_cv_shlib_version" >&5
++ echo "$as_me:4316: result: $cf_cv_shlib_version" >&5
+ echo "${ECHO_T}$cf_cv_shlib_version" >&6
+
+ cf_cv_rm_so_locs=no
+@@ -3975,14 +4322,14 @@
+ CC_SHARED_OPTS=
+ if test "$GCC" = yes
+ then
+- echo "$as_me:3978: checking which $CC option to use" >&5
++ echo "$as_me:4325: 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 3985 "configure"
++#line 4332 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -3994,16 +4341,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3997: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4344: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4000: \$? = $ac_status" >&5
++ echo "$as_me:4347: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4003: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4350: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4006: \$? = $ac_status" >&5
++ echo "$as_me:4353: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -4012,7 +4359,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+- echo "$as_me:4015: result: $CC_SHARED_OPTS" >&5
++ echo "$as_me:4362: result: $CC_SHARED_OPTS" >&5
+ echo "${ECHO_T}$CC_SHARED_OPTS" >&6
+ CFLAGS="$cf_save_CFLAGS"
+ fi
+@@ -4061,7 +4408,7 @@
+ MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $@` -o $@'
+ cf_cv_rm_so_locs=yes
+ ;;
+- linux*|gnu*)
++ linux*|gnu*|k*bsd*-gnu)
+ if test "$DFT_LWR_MODEL" = "shared" ; then
+ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+@@ -4122,7 +4469,7 @@
+ ;;
+ sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
+ # tested with osr5.0.5
+- if test "$ac_cv_c_compiler_gnu" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-belf -KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
+@@ -4136,7 +4483,7 @@
+ ;;
+ sunos4*)
+ # tested with SunOS 4.1.1 and gcc 2.7.0
+- if test "$ac_cv_c_compiler_gnu" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -assert pure-text -o $@'
+@@ -4144,7 +4491,7 @@
+ ;;
+ solaris2*)
+ # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
+- if test "$ac_cv_c_compiler_gnu" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
+@@ -4160,7 +4507,7 @@
+ ;;
+ sysv5uw7*|unix_sv*)
+ # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
+- if test "$ac_cv_c_compiler_gnu" != yes; then
++ if test "$GCC" != yes; then
+ CC_SHARED_OPTS='-KPIC'
+ fi
+ MK_SHARED_LIB='$(LD) -d y -G -o $@'
+@@ -4179,7 +4526,7 @@
+ test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
+ ;;
+ *)
+- { echo "$as_me:4182: WARNING: ignored --with-shlib-version" >&5
++ { echo "$as_me:4529: WARNING: ignored --with-shlib-version" >&5
+ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
+ ;;
+ esac
+@@ -4187,12 +4534,12 @@
+ esac
+
+ if test -n "$cf_ld_rpath_opt" ; then
+- echo "$as_me:4190: checking if we need a space after rpath option" >&5
++ echo "$as_me:4537: checking if we need a space after rpath option" >&5
+ echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4195 "configure"
++#line 4542 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -4204,16 +4551,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4207: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4554: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4210: \$? = $ac_status" >&5
++ echo "$as_me:4557: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4213: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4560: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4216: \$? = $ac_status" >&5
++ echo "$as_me:4563: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_rpath_space=no
+ else
+@@ -4223,7 +4570,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS="$cf_save_LIBS"
+- echo "$as_me:4226: result: $cf_rpath_space" >&5
++ echo "$as_me:4573: result: $cf_rpath_space" >&5
+ echo "${ECHO_T}$cf_rpath_space" >&6
+ test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
+ MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
+@@ -4232,7 +4579,7 @@
+ if test "$CC_SHARED_OPTS" = "unknown"; then
+ for model in $cf_list_models; do
+ if test "$model" = "shared"; then
+- { { echo "$as_me:4235: error: Shared libraries are not supported in this version" >&5
++ { { echo "$as_me:4582: 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
+@@ -4242,7 +4589,7 @@
+ ###############################################################################
+
+ ### use option --disable-overwrite to leave out the link to -lcurses
+-echo "$as_me:4245: checking if you wish to install ncurses overwriting curses" >&5
++echo "$as_me:4592: 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.
+@@ -4252,10 +4599,10 @@
+ else
+ if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
+ fi;
+-echo "$as_me:4255: result: $with_overwrite" >&5
++echo "$as_me:4602: result: $with_overwrite" >&5
+ echo "${ECHO_T}$with_overwrite" >&6
+
+-echo "$as_me:4258: checking if external terminfo-database is used" >&5
++echo "$as_me:4605: 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.
+@@ -4265,7 +4612,7 @@
+ else
+ use_database=yes
+ fi;
+-echo "$as_me:4268: result: $use_database" >&5
++echo "$as_me:4615: result: $use_database" >&5
+ echo "${ECHO_T}$use_database" >&6
+
+ case $host_os in #(vi
+@@ -4287,7 +4634,7 @@
+ #define USE_DATABASE 1
+ EOF
+
+- echo "$as_me:4290: checking which terminfo source-file will be installed" >&5
++ echo "$as_me:4637: checking which terminfo source-file will be installed" >&5
+ echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
+
+ # Check whether --enable-database or --disable-database was given.
+@@ -4295,11 +4642,11 @@
+ enableval="$enable_database"
+ TERMINFO_SRC=$withval
+ fi;
+- echo "$as_me:4298: result: $TERMINFO_SRC" >&5
++ echo "$as_me:4645: result: $TERMINFO_SRC" >&5
+ echo "${ECHO_T}$TERMINFO_SRC" >&6
+ fi
+
+-echo "$as_me:4302: checking for list of fallback descriptions" >&5
++echo "$as_me:4649: 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.
+@@ -4309,9 +4656,9 @@
+ else
+ with_fallback=
+ fi;
+-echo "$as_me:4312: result: $with_fallback" >&5
++echo "$as_me:4659: result: $with_fallback" >&5
+ echo "${ECHO_T}$with_fallback" >&6
+-FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
++FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+
+ MAKE_TERMINFO=
+ if test "$use_database" = no ; then
+@@ -4319,7 +4666,7 @@
+ MAKE_TERMINFO="#"
+ else
+
+-echo "$as_me:4322: checking for list of terminfo directories" >&5
++echo "$as_me:4669: 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.
+@@ -4353,7 +4700,7 @@
+ cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
+ ;;
+ *)
+- { { echo "$as_me:4356: error: expected a pathname, not \"$cf_src_path\"" >&5
++ { { echo "$as_me:4703: 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; }; }
+ ;;
+@@ -4366,13 +4713,13 @@
+
+ eval 'TERMINFO_DIRS="$cf_dst_path"'
+
+-echo "$as_me:4369: result: $TERMINFO_DIRS" >&5
++echo "$as_me:4716: result: $TERMINFO_DIRS" >&5
+ echo "${ECHO_T}$TERMINFO_DIRS" >&6
+ test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
+ #define TERMINFO_DIRS "$TERMINFO_DIRS"
+ EOF
+
+-echo "$as_me:4375: checking for default terminfo directory" >&5
++echo "$as_me:4722: 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.
+@@ -4401,7 +4748,7 @@
+ withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
+ ;;
+ *)
+- { { echo "$as_me:4404: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:4751: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -4409,7 +4756,7 @@
+
+ eval TERMINFO="$withval"
+
+-echo "$as_me:4412: result: $TERMINFO" >&5
++echo "$as_me:4759: result: $TERMINFO" >&5
+ echo "${ECHO_T}$TERMINFO" >&6
+ cat >>confdefs.h <<EOF
+ #define TERMINFO "$TERMINFO"
+@@ -4419,7 +4766,7 @@
+
+ ### use option --disable-big-core to make tic run on small machines
+ ### We need 4Mb, check if we can allocate 50% more than that.
+-echo "$as_me:4422: checking if big-core option selected" >&5
++echo "$as_me:4769: 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.
+@@ -4431,7 +4778,7 @@
+ with_big_core=no
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4434 "configure"
++#line 4781 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -4445,15 +4792,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:4448: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4795: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4451: \$? = $ac_status" >&5
++ echo "$as_me:4798: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:4453: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4800: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4456: \$? = $ac_status" >&5
++ echo "$as_me:4803: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ with_big_core=yes
+ else
+@@ -4465,14 +4812,14 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi;
+-echo "$as_me:4468: result: $with_big_core" >&5
++echo "$as_me:4815: result: $with_big_core" >&5
+ echo "${ECHO_T}$with_big_core" >&6
+ test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
+ #define HAVE_BIG_CORE 1
+ EOF
+
+ ### use option --enable-termcap to compile in the termcap fallback support
+-echo "$as_me:4475: checking if you want termcap-fallback support" >&5
++echo "$as_me:4822: 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.
+@@ -4482,13 +4829,13 @@
+ else
+ with_termcap=no
+ fi;
+-echo "$as_me:4485: result: $with_termcap" >&5
++echo "$as_me:4832: result: $with_termcap" >&5
+ echo "${ECHO_T}$with_termcap" >&6
+
+ if test "$with_termcap" != "yes" ; then
+ if test "$use_database" = no ; then
+- if test -z $with_fallback ; then
+- { { echo "$as_me:4491: error: You have disabled the database w/o specifying fallbacks" >&5
++ if test -z "$with_fallback" ; then
++ { { echo "$as_me:4838: 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
+@@ -4503,7 +4850,7 @@
+ #define USE_TERMCAP 1
+ EOF
+
+-echo "$as_me:4506: checking for list of termcap files" >&5
++echo "$as_me:4853: 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.
+@@ -4537,7 +4884,7 @@
+ cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
+ ;;
+ *)
+- { { echo "$as_me:4540: error: expected a pathname, not \"$cf_src_path\"" >&5
++ { { echo "$as_me:4887: 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; }; }
+ ;;
+@@ -4550,14 +4897,14 @@
+
+ eval 'TERMPATH="$cf_dst_path"'
+
+-echo "$as_me:4553: result: $TERMPATH" >&5
++echo "$as_me:4900: result: $TERMPATH" >&5
+ echo "${ECHO_T}$TERMPATH" >&6
+ test -n "$TERMPATH" && cat >>confdefs.h <<EOF
+ #define TERMPATH "$TERMPATH"
+ EOF
+
+ ### use option --enable-getcap to use a hacked getcap for reading termcaps
+-echo "$as_me:4560: checking if fast termcap-loader is needed" >&5
++echo "$as_me:4907: 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.
+@@ -4567,13 +4914,13 @@
+ else
+ with_getcap=no
+ fi;
+-echo "$as_me:4570: result: $with_getcap" >&5
++echo "$as_me:4917: result: $with_getcap" >&5
+ echo "${ECHO_T}$with_getcap" >&6
+ test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
+ #define USE_GETCAP 1
+ EOF
+
+-echo "$as_me:4576: checking if translated termcaps will be cached in ~/.terminfo" >&5
++echo "$as_me:4923: 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.
+@@ -4583,7 +4930,7 @@
+ else
+ with_getcap_cache=no
+ fi;
+-echo "$as_me:4586: result: $with_getcap_cache" >&5
++echo "$as_me:4933: result: $with_getcap_cache" >&5
+ echo "${ECHO_T}$with_getcap_cache" >&6
+ test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
+ #define USE_GETCAP_CACHE 1
+@@ -4599,13 +4946,13 @@
+ unlink
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:4602: checking for $ac_func" >&5
++echo "$as_me:4949: 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 4608 "configure"
++#line 4955 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -4636,16 +4983,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4639: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4986: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4642: \$? = $ac_status" >&5
++ echo "$as_me:4989: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4645: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4992: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4648: \$? = $ac_status" >&5
++ echo "$as_me:4995: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -4655,7 +5002,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:4658: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:5005: 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
+@@ -4665,20 +5012,20 @@
+ fi
+ done
+
+-if test "$ac_cv_prog_cc_cross" = yes ; then
++if test "$cross_compiling" = yes ; then
+
+ for ac_func in \
+ link \
+ symlink
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:4675: checking for $ac_func" >&5
++echo "$as_me:5022: 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 4681 "configure"
++#line 5028 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -4709,16 +5056,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4712: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5059: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4715: \$? = $ac_status" >&5
++ echo "$as_me:5062: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4718: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5065: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4721: \$? = $ac_status" >&5
++ echo "$as_me:5068: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -4728,7 +5075,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:4731: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:5078: 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
+@@ -4739,7 +5086,7 @@
+ done
+
+ else
+- echo "$as_me:4742: checking if link/symlink functions work" >&5
++ echo "$as_me:5089: checking if link/symlink functions work" >&5
+ echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6
+ if test "${cf_cv_link_funcs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4752,7 +5099,7 @@
+ eval 'ac_cv_func_'$cf_func'=error'
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4755 "configure"
++#line 5102 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -4782,15 +5129,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:4785: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5132: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4788: \$? = $ac_status" >&5
++ echo "$as_me:5135: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:4790: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5137: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4793: \$? = $ac_status" >&5
++ echo "$as_me:5140: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
+@@ -4808,7 +5155,7 @@
+ test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
+
+ fi
+-echo "$as_me:4811: result: $cf_cv_link_funcs" >&5
++echo "$as_me:5158: 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
+@@ -4824,27 +5171,27 @@
+ with_symlinks=no
+
+ if test "$ac_cv_func_link" != yes ; then
+- echo "$as_me:4827: checking if tic should use symbolic links" >&5
++ echo "$as_me:5174: checking if tic should use symbolic links" >&5
+ echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
+ if test "$ac_cv_func_symlink" = yes ; then
+ with_symlinks=yes
+ else
+ with_symlinks=no
+ fi
+- echo "$as_me:4834: result: $with_symlinks" >&5
++ echo "$as_me:5181: result: $with_symlinks" >&5
+ echo "${ECHO_T}$with_symlinks" >&6
+ elif test "$ac_cv_func_symlink" != yes ; then
+- echo "$as_me:4837: checking if tic should use hard links" >&5
++ echo "$as_me:5184: 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:4844: result: $with_links" >&5
++ echo "$as_me:5191: result: $with_links" >&5
+ echo "${ECHO_T}$with_links" >&6
+ else
+- echo "$as_me:4847: checking if tic should use symbolic links" >&5
++ echo "$as_me:5194: 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.
+@@ -4854,7 +5201,7 @@
+ else
+ with_symlinks=no
+ fi;
+- echo "$as_me:4857: result: $with_symlinks" >&5
++ echo "$as_me:5204: result: $with_symlinks" >&5
+ echo "${ECHO_T}$with_symlinks" >&6
+ fi
+
+@@ -4867,7 +5214,7 @@
+ EOF
+
+ ### use option --enable-broken-linker to force on use of broken-linker support
+-echo "$as_me:4870: checking if you want broken-linker support code" >&5
++echo "$as_me:5217: 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.
+@@ -4877,7 +5224,7 @@
+ else
+ with_broken_linker=$BROKEN_LINKER
+ fi;
+-echo "$as_me:4880: result: $with_broken_linker" >&5
++echo "$as_me:5227: result: $with_broken_linker" >&5
+ echo "${ECHO_T}$with_broken_linker" >&6
+
+ BROKEN_LINKER=0
+@@ -4887,7 +5234,7 @@
+ EOF
+
+ BROKEN_LINKER=1
+-elif test $DFT_LWR_MODEL = shared ; then
++elif test "$DFT_LWR_MODEL" = shared ; then
+ case $cf_cv_system_name in #(vi
+ cygwin*)
+ cat >>confdefs.h <<\EOF
+@@ -4902,7 +5249,7 @@
+ fi
+
+ ### use option --with-bool to override bool's type
+-echo "$as_me:4905: checking for type of bool" >&5
++echo "$as_me:5252: 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.
+@@ -4912,11 +5259,11 @@
+ else
+ NCURSES_BOOL=auto
+ fi;
+-echo "$as_me:4915: result: $NCURSES_BOOL" >&5
++echo "$as_me:5262: result: $NCURSES_BOOL" >&5
+ echo "${ECHO_T}$NCURSES_BOOL" >&6
+
+ ### use option --with-ospeed to override ospeed's type
+-echo "$as_me:4919: checking for type of ospeed" >&5
++echo "$as_me:5266: 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.
+@@ -4926,11 +5273,11 @@
+ else
+ NCURSES_OSPEED=short
+ fi;
+-echo "$as_me:4929: result: $NCURSES_OSPEED" >&5
++echo "$as_me:5276: result: $NCURSES_OSPEED" >&5
+ echo "${ECHO_T}$NCURSES_OSPEED" >&6
+
+ ### use option --enable-bsdpad to have tputs process BSD-style prefix padding
+-echo "$as_me:4933: checking if tputs should process BSD-style prefix padding" >&5
++echo "$as_me:5280: 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.
+@@ -4940,14 +5287,14 @@
+ else
+ with_bsdpad=no
+ fi;
+-echo "$as_me:4943: result: $with_bsdpad" >&5
++echo "$as_me:5290: result: $with_bsdpad" >&5
+ echo "${ECHO_T}$with_bsdpad" >&6
+ test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
+ #define BSD_TPUTS 1
+ EOF
+
+ ### Enable compiling-in rcs id's
+-echo "$as_me:4950: checking if RCS identifiers should be compiled-in" >&5
++echo "$as_me:5297: 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.
+@@ -4957,7 +5304,7 @@
+ else
+ with_rcs_ids=no
+ fi;
+-echo "$as_me:4960: result: $with_rcs_ids" >&5
++echo "$as_me:5307: result: $with_rcs_ids" >&5
+ echo "${ECHO_T}$with_rcs_ids" >&6
+ test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
+ #define USE_RCS_IDS 1
+@@ -4965,7 +5312,7 @@
+
+ ###############################################################################
+
+-echo "$as_me:4968: checking format of man-pages" >&5
++echo "$as_me:5315: 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.
+@@ -5008,15 +5355,15 @@
+ IFS="$ac_save_ifs"
+ ;;
+ .*) # (vi
+- { echo "$as_me:5011: WARNING: Unexpected manpage-format" >&5
++ { echo "$as_me:5358: WARNING: Unexpected manpage-format" >&5
+ echo "$as_me: WARNING: Unexpected manpage-format" >&2;}
+ ;;
+ esac
+
+-echo "$as_me:5016: result: $MANPAGE_FORMAT" >&5
++echo "$as_me:5363: result: $MANPAGE_FORMAT" >&5
+ echo "${ECHO_T}$MANPAGE_FORMAT" >&6
+
+-echo "$as_me:5019: checking for manpage renaming" >&5
++echo "$as_me:5366: 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.
+@@ -5044,7 +5391,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:5047: error: not a filename: $MANPAGE_RENAMES" >&5
++ { { echo "$as_me:5394: error: not a filename: $MANPAGE_RENAMES" >&5
+ echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -5058,10 +5405,10 @@
+ fi
+ fi
+
+-echo "$as_me:5061: result: $MANPAGE_RENAMES" >&5
++echo "$as_me:5408: result: $MANPAGE_RENAMES" >&5
+ echo "${ECHO_T}$MANPAGE_RENAMES" >&6
+
+-echo "$as_me:5064: checking for manpage symlinks" >&5
++echo "$as_me:5411: checking for manpage symlinks" >&5
+ echo $ECHO_N "checking for manpage symlinks... $ECHO_C" >&6
+
+ # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
+@@ -5072,10 +5419,10 @@
+ MANPAGE_SYMLINKS=yes
+ fi;
+
+-echo "$as_me:5075: result: $MANPAGE_SYMLINKS" >&5
++echo "$as_me:5422: result: $MANPAGE_SYMLINKS" >&5
+ echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
+
+-echo "$as_me:5078: checking for manpage tbl" >&5
++echo "$as_me:5425: 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.
+@@ -5086,7 +5433,7 @@
+ MANPAGE_TBL=no
+ fi;
+
+-echo "$as_me:5089: result: $MANPAGE_TBL" >&5
++echo "$as_me:5436: result: $MANPAGE_TBL" >&5
+ echo "${ECHO_T}$MANPAGE_TBL" >&6
+
+ if test "$prefix" = "NONE" ; then
+@@ -5257,7 +5604,7 @@
+ ;;
+ esac
+ cat >>man/edit_man.sh <<CF_EOF
+- suffix=\`basename \$target | sed -e 's/^[^.]*//'\`
++ suffix=\`basename \$target | sed -e 's%^[^.]*%%'\`
+ if test \$verb = installing ; then
+ echo \$verb \$target
+ \$INSTALL_DATA \$TMP \$target
+@@ -5317,7 +5664,7 @@
+ ###############################################################################
+
+ ### Note that some functions (such as const) are normally disabled anyway.
+-echo "$as_me:5320: checking if you want to build with function extensions" >&5
++echo "$as_me:5667: 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.
+@@ -5327,7 +5674,7 @@
+ else
+ with_ext_funcs=yes
+ fi;
+-echo "$as_me:5330: result: $with_ext_funcs" >&5
++echo "$as_me:5677: result: $with_ext_funcs" >&5
+ echo "${ECHO_T}$with_ext_funcs" >&6
+ if test "$with_ext_funcs" = yes ; then
+ NCURSES_EXT_FUNCS=1
+@@ -5344,6 +5691,10 @@
+ EOF
+
+ cat >>confdefs.h <<\EOF
++#define HAVE_RESIZE_TERM 1
++EOF
++
++ cat >>confdefs.h <<\EOF
+ #define HAVE_USE_DEFAULT_COLORS 1
+ EOF
+
+@@ -5360,7 +5711,7 @@
+ fi
+
+ ### use option --enable-const to turn on use of const beyond that in XSI.
+-echo "$as_me:5363: checking for extended use of const keyword" >&5
++echo "$as_me:5714: 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.
+@@ -5370,14 +5721,14 @@
+ else
+ with_ext_const=no
+ fi;
+-echo "$as_me:5373: result: $with_ext_const" >&5
++echo "$as_me:5724: result: $with_ext_const" >&5
+ echo "${ECHO_T}$with_ext_const" >&6
+ NCURSES_CONST='/*nothing*/'
+ if test "$with_ext_const" = yes ; then
+ NCURSES_CONST=const
+ fi
+
+-echo "$as_me:5380: checking if you want \$NCURSES_NO_PADDING code" >&5
++echo "$as_me:5731: 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.
+@@ -5387,14 +5738,14 @@
+ else
+ with_no_padding=$with_ext_funcs
+ fi;
+-echo "$as_me:5390: result: $with_no_padding" >&5
++echo "$as_me:5741: result: $with_no_padding" >&5
+ echo "${ECHO_T}$with_no_padding" >&6
+ test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
+ #define NCURSES_NO_PADDING 1
+ EOF
+
+ ### use option --enable-sigwinch to turn on use of SIGWINCH logic
+-echo "$as_me:5397: checking if you want SIGWINCH handler" >&5
++echo "$as_me:5748: 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.
+@@ -5404,14 +5755,14 @@
+ else
+ with_sigwinch=$with_ext_funcs
+ fi;
+-echo "$as_me:5407: result: $with_sigwinch" >&5
++echo "$as_me:5758: result: $with_sigwinch" >&5
+ echo "${ECHO_T}$with_sigwinch" >&6
+ test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SIGWINCH 1
+ EOF
+
+ ### use option --enable-tcap-names to allow user to define new capabilities
+-echo "$as_me:5414: checking if you want user-definable terminal capabilities like termcap" >&5
++echo "$as_me:5765: 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.
+@@ -5421,7 +5772,7 @@
+ else
+ with_tcap_names=$with_ext_funcs
+ fi;
+-echo "$as_me:5424: result: $with_tcap_names" >&5
++echo "$as_me:5775: result: $with_tcap_names" >&5
+ echo "${ECHO_T}$with_tcap_names" >&6
+ NCURSES_XNAMES=0
+ test "$with_tcap_names" = yes && NCURSES_XNAMES=1
+@@ -5429,7 +5780,7 @@
+ ###############################################################################
+ # These options are relatively safe to experiment with.
+
+-echo "$as_me:5432: checking if you want all development code" >&5
++echo "$as_me:5783: 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.
+@@ -5439,11 +5790,11 @@
+ else
+ with_develop=no
+ fi;
+-echo "$as_me:5442: result: $with_develop" >&5
++echo "$as_me:5793: 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:5446: checking if you want hard-tabs code" >&5
++echo "$as_me:5797: 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.
+@@ -5453,13 +5804,13 @@
+ else
+ with_hardtabs=$with_develop
+ fi;
+-echo "$as_me:5456: result: $with_hardtabs" >&5
++echo "$as_me:5807: result: $with_hardtabs" >&5
+ echo "${ECHO_T}$with_hardtabs" >&6
+ test "$with_hardtabs" = yes && cat >>confdefs.h <<\EOF
+ #define USE_HARD_TABS 1
+ EOF
+
+-echo "$as_me:5462: checking if you want to use restrict environment when running as root" >&5
++echo "$as_me:5813: checking if you want to use restrict environment when running as root" >&5
+ echo $ECHO_N "checking if you want to use restrict environment when running as root... $ECHO_C" >&6
+
+ # Check whether --enable-root-environ or --disable-root-environ was given.
+@@ -5469,14 +5820,14 @@
+ else
+ with_root_environ=yes
+ fi;
+-echo "$as_me:5472: result: $with_root_environ" >&5
++echo "$as_me:5823: result: $with_root_environ" >&5
+ echo "${ECHO_T}$with_root_environ" >&6
+ test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
+ #define USE_ROOT_ENVIRON 1
+ EOF
+
+ ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
+-echo "$as_me:5479: checking if you want limited support for xmc" >&5
++echo "$as_me:5830: 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.
+@@ -5486,7 +5837,7 @@
+ else
+ with_xmc_glitch=$with_develop
+ fi;
+-echo "$as_me:5489: result: $with_xmc_glitch" >&5
++echo "$as_me:5840: result: $with_xmc_glitch" >&5
+ echo "${ECHO_T}$with_xmc_glitch" >&6
+ test "$with_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
+ #define USE_XMC_SUPPORT 1
+@@ -5495,7 +5846,7 @@
+ ###############################################################################
+ # These are just experimental, probably should not be in a package:
+
+-echo "$as_me:5498: checking if you do not want to assume colors are white-on-black" >&5
++echo "$as_me:5849: 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.
+@@ -5505,14 +5856,14 @@
+ else
+ with_assumed_color=yes
+ fi;
+-echo "$as_me:5508: result: $with_assumed_color" >&5
++echo "$as_me:5859: result: $with_assumed_color" >&5
+ echo "${ECHO_T}$with_assumed_color" >&6
+ test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
+ #define USE_ASSUMED_COLOR 1
+ EOF
+
+ ### use option --enable-hashmap to turn on use of hashmap scrolling logic
+-echo "$as_me:5515: checking if you want hashmap scrolling-optimization code" >&5
++echo "$as_me:5866: 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.
+@@ -5522,14 +5873,14 @@
+ else
+ with_hashmap=yes
+ fi;
+-echo "$as_me:5525: result: $with_hashmap" >&5
++echo "$as_me:5876: result: $with_hashmap" >&5
+ echo "${ECHO_T}$with_hashmap" >&6
+ test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
+ #define USE_HASHMAP 1
+ EOF
+
+ ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+-echo "$as_me:5532: checking if you want colorfgbg code" >&5
++echo "$as_me:5883: 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.
+@@ -5539,13 +5890,13 @@
+ else
+ with_colorfgbg=no
+ fi;
+-echo "$as_me:5542: result: $with_colorfgbg" >&5
++echo "$as_me:5893: result: $with_colorfgbg" >&5
+ echo "${ECHO_T}$with_colorfgbg" >&6
+ test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
+ #define USE_COLORFGBG 1
+ EOF
+
+-echo "$as_me:5548: checking if you want experimental safe-sprintf code" >&5
++echo "$as_me:5899: 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.
+@@ -5555,7 +5906,7 @@
+ else
+ with_safe_sprintf=no
+ fi;
+-echo "$as_me:5558: result: $with_safe_sprintf" >&5
++echo "$as_me:5909: result: $with_safe_sprintf" >&5
+ echo "${ECHO_T}$with_safe_sprintf" >&6
+ test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SAFE_SPRINTF 1
+@@ -5564,7 +5915,7 @@
+ ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
+ # when hashmap is used scroll hints are useless
+ if test "$with_hashmap" = no ; then
+-echo "$as_me:5567: checking if you want to experiment without scrolling-hints code" >&5
++echo "$as_me:5918: 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.
+@@ -5574,7 +5925,7 @@
+ else
+ with_scroll_hints=yes
+ fi;
+-echo "$as_me:5577: result: $with_scroll_hints" >&5
++echo "$as_me:5928: result: $with_scroll_hints" >&5
+ echo "${ECHO_T}$with_scroll_hints" >&6
+ test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SCROLL_HINTS 1
+@@ -5585,8 +5936,102 @@
+ ### 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
+-echo "$as_me:5589: checking if you want experimental wide-character code" >&5
++NCURSES_WCHAR_T=0
++NCURSES_WINT_T=0
++
++# Check to define _XOPEN_SOURCE "automatically"
++
++echo "$as_me:5947: 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 5954 "configure"
++#include "confdefs.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:5969: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:5972: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:5975: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:5978: \$? = $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 5987 "configure"
++#include "confdefs.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:6002: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6005: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6008: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6011: \$? = $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:6026: 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"
++
++# use these variables to work around a defect in gcc's fixincludes.
++NCURSES_OK_WCHAR_T=
++NCURSES_OK_WINT_T=
++
++echo "$as_me:6034: checking if you want experimental wide-character code" >&5
+ echo $ECHO_N "checking if you want experimental wide-character code... $ECHO_C" >&6
+
+ # Check whether --enable-widec or --disable-widec was given.
+@@ -5596,7 +6041,7 @@
+ else
+ with_widec=no
+ fi;
+-echo "$as_me:5599: result: $with_widec" >&5
++echo "$as_me:6044: result: $with_widec" >&5
+ echo "${ECHO_T}$with_widec" >&6
+ if test "$with_widec" = yes ; then
+ LIB_SUFFIX="w${LIB_SUFFIX}"
+@@ -5604,19 +6049,198 @@
+ #define USE_WIDEC_SUPPORT 1
+ EOF
+
++echo "$as_me:6052: checking if we must define _XOPEN_SOURCE" >&5
++echo $ECHO_N "checking if we must define _XOPEN_SOURCE... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line 6055 "configure"
++#include "confdefs.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:6071: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6074: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6077: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6080: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_result=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_result=yes
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:6089: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++
++if test "$cf_result" = yes ; then
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
++elif test "x500" != "x" ; then
++ echo "$as_me:6095: checking checking for compatible value versus 500" >&5
++echo $ECHO_N "checking checking for compatible value versus 500... $ECHO_C" >&6
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6098 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#if _XOPEN_SOURCE-500 < 0
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:6114: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6117: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6120: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6123: \$? = $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_ext
++ echo "$as_me:6132: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test "$cf_result" = no ; then
++ # perhaps we can override it - try...
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
++ fi
++fi
++
++echo "$as_me:6140: 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 6143 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE_EXTENDED
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:6159: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6162: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6165: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6168: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_result=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_result=yes
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:6177: 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:6183: 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 6186 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#if _XOPEN_SOURCE_EXTENDED- < 0
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:6202: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6205: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6208: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6211: \$? = $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_ext
++ echo "$as_me:6220: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test "$cf_result" = no ; then
++ # perhaps we can override it - try...
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
++ fi
++fi
++
+ # with_overwrite=no
+ NCURSES_CH_T=cchar_t
+- echo "$as_me:5610: checking for putwc" >&5
+-echo $ECHO_N "checking for putwc... $ECHO_C" >&6
+-if test "${ac_cv_func_putwc+set}" = set; then
++
++for ac_func in putwc btowc wctob mbtowc wctomb
++do
++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
++echo "$as_me:6234: 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 5616 "configure"
++#line 6240 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char putwc (); below. */
++ which can conflict with char $ac_func (); below. */
+ #include <assert.h>
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -5624,7 +6248,7 @@
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char putwc ();
++char $ac_func ();
+ char (*f) ();
+
+ int
+@@ -5633,10 +6257,10 @@
+ /* 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_putwc) || defined (__stub___putwc)
++#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+ choke me
+ #else
+-f = putwc;
++f = $ac_func;
+ #endif
+
+ ;
+@@ -5644,31 +6268,38 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5647: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6271: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5650: \$? = $ac_status" >&5
++ echo "$as_me:6274: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5653: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6277: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5656: \$? = $ac_status" >&5
++ echo "$as_me:6280: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_putwc=yes
++ eval "$as_ac_var=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_putwc=no
++eval "$as_ac_var=no"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:5666: result: $ac_cv_func_putwc" >&5
+-echo "${ECHO_T}$ac_cv_func_putwc" >&6
++echo "$as_me:6290: 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
+
+-if test "$ac_cv_func_putwc" != yes ; then
++fi
++done
+
+-echo "$as_me:5671: checking for putwc in libutf8" >&5
++ if test "$ac_cv_func_putwc" != yes ; then
++
++echo "$as_me:6302: checking for putwc in libutf8" >&5
+ echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6
+ if test "${cf_cv_libutf8+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5677,7 +6308,7 @@
+ cf_save_LIBS="$LIBS"
+ LIBS="-lutf8 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5680 "configure"
++#line 6311 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -5690,16 +6321,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5693: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6324: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5696: \$? = $ac_status" >&5
++ echo "$as_me:6327: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5699: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6330: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5702: \$? = $ac_status" >&5
++ echo "$as_me:6333: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_libutf8=yes
+ else
+@@ -5711,7 +6342,7 @@
+ LIBS="$cf_save_LIBS"
+
+ fi
+-echo "$as_me:5714: result: $cf_cv_libutf8" >&5
++echo "$as_me:6345: result: $cf_cv_libutf8" >&5
+ echo "${ECHO_T}$cf_cv_libutf8" >&6
+
+ if test "$cf_cv_libutf8" = yes ; then
+@@ -5722,20 +6353,20 @@
+ LIBS="-lutf8 $LIBS"
+ fi
+
+- if test "$cf_cv_libutf8" = yes ; then
+- NCURSES_LIBUTF8=1
++ if test "$cf_cv_libutf8" = yes ; then
++ NCURSES_LIBUTF8=1
++ fi
+ fi
+-fi
+
+ # This is needed on Tru64 5.0 to declare mbstate_t
+-echo "$as_me:5731: checking if we must include wchar.h to declare mbstate_t" >&5
++echo "$as_me:6362: 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 5738 "configure"
++#line 6369 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -5751,23 +6382,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5754: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6385: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5757: \$? = $ac_status" >&5
++ echo "$as_me:6388: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5760: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6391: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5763: \$? = $ac_status" >&5
++ echo "$as_me:6394: \$? = $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 5770 "configure"
++#line 6401 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -5784,16 +6415,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5787: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6418: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5790: \$? = $ac_status" >&5
++ echo "$as_me:6421: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5793: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6424: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5796: \$? = $ac_status" >&5
++ echo "$as_me:6427: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_mbstate_t=yes
+ else
+@@ -5805,7 +6436,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:5808: result: $cf_cv_mbstate_t" >&5
++echo "$as_me:6439: result: $cf_cv_mbstate_t" >&5
+ echo "${ECHO_T}$cf_cv_mbstate_t" >&6
+
+ if test "$cf_cv_mbstate_t" = yes ; then
+@@ -5813,21 +6444,215 @@
+ #define NEED_WCHAR_H 1
+ EOF
+
++ NEED_WCHAR_H=1
+ fi
+
+-if test "$cf_cv_mbstate_t" != unknown ; 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
++
++# This is needed on Tru64 5.0 to declare wchar_t
++echo "$as_me:6456: 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 6463 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif
++int
++main ()
++{
++wchar_t state
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:6479: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6482: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6485: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6488: \$? = $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 6495 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <wchar.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif
++int
++main ()
++{
++wchar_t value
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:6512: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6515: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6518: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6521: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_wchar_t=yes
++else
++ 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
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:6533: 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
+-#define HAVE_MBSTATE_T 1
++#define NEED_WCHAR_H 1
+ EOF
+
++ NEED_WCHAR_H=1
+ fi
+
+- if test $cf_cv_mbstate_t = yes ; then
+- NCURSES_MBSTATE_T=1
+- fi
++# if we do not find wchar_t in either place, use substitution to provide a fallback.
++if test "$cf_cv_wchar_t" = unknown ; then
++ NCURSES_WCHAR_T=1
+ fi
+
+-echo "$as_me:5830: checking for terminal capabilities file" >&5
++# 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
++
++# This is needed on Tru64 5.0 to declare wint_t
++echo "$as_me:6555: 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 6562 "configure"
++#include "confdefs.h"
++
++#include <stdlib.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:6578: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6581: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6584: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6587: \$? = $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 6594 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <wchar.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif
++int
++main ()
++{
++wint_t value
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:6611: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6614: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6617: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6620: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_wint_t=yes
++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
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:6632: 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
++
++ NEED_WCHAR_H=1
++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
++fi
++
++# if we find wint_t in either place, use substitution to provide a fallback.
++if test "$cf_cv_wint_t" != unknown ; then
++ NCURSES_OK_WINT_T=1
++fi
++
++fi
++
++echo "$as_me:6655: checking for terminal capabilities file" >&5
+ echo $ECHO_N "checking for terminal capabilities file... $ECHO_C" >&6
+
+ # Check whether --with-caps or --without-caps was given.
+@@ -5838,13 +6663,13 @@
+ TERMINFO_CAPS=Caps
+ fi;
+ test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
+-echo "$as_me:5841: result: $TERMINFO_CAPS" >&5
++echo "$as_me:6666: result: $TERMINFO_CAPS" >&5
+ echo "${ECHO_T}$TERMINFO_CAPS" >&6
+
+ ###############################################################################
+
+ ### use option --disable-echo to suppress full display compiling commands
+-echo "$as_me:5847: checking if you want to display full commands during build" >&5
++echo "$as_me:6672: checking if you want to display full commands during build" >&5
+ echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
+
+ # Check whether --enable-echo or --disable-echo was given.
+@@ -5860,11 +6685,11 @@
+ ECHO_LINK='@ echo linking $@ ... ;'
+ test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+ fi
+-echo "$as_me:5863: result: $with_echo" >&5
++echo "$as_me:6688: result: $with_echo" >&5
+ echo "${ECHO_T}$with_echo" >&6
+
+ ### use option --enable-warnings to turn on all gcc warnings
+-echo "$as_me:5867: checking if you want to see compiler warnings" >&5
++echo "$as_me:6692: 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.
+@@ -5872,7 +6697,7 @@
+ enableval="$enable_warnings"
+ with_warnings=$enableval
+ fi;
+-echo "$as_me:5875: result: $with_warnings" >&5
++echo "$as_me:6700: result: $with_warnings" >&5
+ echo "${ECHO_T}$with_warnings" >&6
+
+ if test -n "$with_warnings"; then
+@@ -5881,10 +6706,10 @@
+ if test "$GCC" = yes
+ then
+ cat > conftest.$ac_ext <<EOF
+-#line 5884 "configure"
++#line 6709 "configure"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+- { echo "$as_me:5887: checking for $CC warning options..." >&5
++ { echo "$as_me:6712: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CFLAGS="$CFLAGS"
+ EXTRA_CFLAGS="-W -Wall"
+@@ -5904,15 +6729,27 @@
+ Wundef $cf_warn_CONST
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+- if { (eval echo "$as_me:5907: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:6732: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5910: \$? = $ac_status" >&5
++ echo "$as_me:6735: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:5912: result: ... -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:6737: 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
++ 3.3*)
++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
++
++ continue;;
++ esac
++ ;;
++ esac
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+- test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
+ fi
+ done
+ rm -f conftest*
+@@ -5939,10 +6776,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+- { echo "$as_me:5942: checking for $CC __attribute__ directives..." >&5
++ { echo "$as_me:6779: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 5945 "configure"
++#line 6782 "configure"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -5980,16 +6817,14 @@
+ EOF
+ ;;
+ esac
+- if { (eval echo "$as_me:5983: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:6820: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5986: \$? = $ac_status" >&5
++ echo "$as_me:6823: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:5988: result: ... $cf_attribute" >&5
++ test -n "$verbose" && echo "$as_me:6825: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ cat conftest.h >>confdefs.h
+-# else
+-# sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
+ fi
+ done
+ else
+@@ -5999,7 +6834,7 @@
+ fi
+
+ ### use option --enable-assertions to turn on generation of assertion code
+-echo "$as_me:6002: checking if you want to enable runtime assertions" >&5
++echo "$as_me:6837: 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.
+@@ -6009,7 +6844,7 @@
+ else
+ with_assertions=no
+ fi;
+-echo "$as_me:6012: result: $with_assertions" >&5
++echo "$as_me:6847: result: $with_assertions" >&5
+ echo "${ECHO_T}$with_assertions" >&6
+ if test -n "$GCC"
+ then
+@@ -6062,13 +6897,13 @@
+ fi;
+
+ ### Checks for libraries.
+-echo "$as_me:6065: checking for gettimeofday" >&5
++echo "$as_me:6900: 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 6071 "configure"
++#line 6906 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gettimeofday (); below. */
+@@ -6099,16 +6934,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6102: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6937: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6105: \$? = $ac_status" >&5
++ echo "$as_me:6940: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6108: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6943: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6111: \$? = $ac_status" >&5
++ echo "$as_me:6946: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_gettimeofday=yes
+ else
+@@ -6118,7 +6953,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6121: result: $ac_cv_func_gettimeofday" >&5
++echo "$as_me:6956: 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
+@@ -6127,7 +6962,7 @@
+
+ else
+
+-echo "$as_me:6130: checking for gettimeofday in -lbsd" >&5
++echo "$as_me:6965: 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
+@@ -6135,7 +6970,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6138 "configure"
++#line 6973 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -6154,16 +6989,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6157: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6992: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6160: \$? = $ac_status" >&5
++ echo "$as_me:6995: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6163: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6998: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6166: \$? = $ac_status" >&5
++ echo "$as_me:7001: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_bsd_gettimeofday=yes
+ else
+@@ -6174,7 +7009,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6177: result: $ac_cv_lib_bsd_gettimeofday" >&5
++echo "$as_me:7012: 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
+@@ -6186,14 +7021,14 @@
+
+ fi
+
+-echo "$as_me:6189: checking if -lm needed for math functions" >&5
++echo "$as_me:7024: 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 6196 "configure"
++#line 7031 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -6208,16 +7043,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6211: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7046: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6214: \$? = $ac_status" >&5
++ echo "$as_me:7049: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6217: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7052: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6220: \$? = $ac_status" >&5
++ echo "$as_me:7055: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_need_libm=no
+ else
+@@ -6227,7 +7062,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6230: result: $cf_cv_need_libm" >&5
++echo "$as_me:7065: result: $cf_cv_need_libm" >&5
+ echo "${ECHO_T}$cf_cv_need_libm" >&6
+ if test "$cf_cv_need_libm" = yes
+ then
+@@ -6235,97 +7070,13 @@
+ fi
+
+ ### Checks for header files.
+-
+-echo "$as_me:6239: 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 6246 "configure"
+-#include "confdefs.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:6261: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:6264: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6267: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:6270: \$? = $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 6279 "configure"
+-#include "confdefs.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:6294: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:6297: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6300: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:6303: \$? = $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:6318: 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:6322: checking for ANSI C header files" >&5
++echo "$as_me:7073: 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 6328 "configure"
++#line 7079 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -6333,13 +7084,13 @@
+ #include <float.h>
+
+ _ACEOF
+-if { (eval echo "$as_me:6336: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:7087: \"$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:6342: \$? = $ac_status" >&5
++ echo "$as_me:7093: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -6361,7 +7112,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 6364 "configure"
++#line 7115 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+
+@@ -6379,7 +7130,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 6382 "configure"
++#line 7133 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+
+@@ -6400,7 +7151,7 @@
+ :
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6403 "configure"
++#line 7154 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -6426,15 +7177,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6429: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7180: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6432: \$? = $ac_status" >&5
++ echo "$as_me:7183: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:6434: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7185: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6437: \$? = $ac_status" >&5
++ echo "$as_me:7188: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -6447,7 +7198,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:6450: result: $ac_cv_header_stdc" >&5
++echo "$as_me:7201: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+
+@@ -6460,13 +7211,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:6463: checking for $ac_hdr that defines DIR" >&5
++echo "$as_me:7214: 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 6469 "configure"
++#line 7220 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -6481,16 +7232,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6484: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7235: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6487: \$? = $ac_status" >&5
++ echo "$as_me:7238: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6490: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7241: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6493: \$? = $ac_status" >&5
++ echo "$as_me:7244: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+ else
+@@ -6500,7 +7251,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6503: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:7254: 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
+@@ -6513,7 +7264,7 @@
+ done
+ # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+ if test $ac_header_dirent = dirent.h; then
+- echo "$as_me:6516: checking for opendir in -ldir" >&5
++ echo "$as_me:7267: 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
+@@ -6521,7 +7272,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldir $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6524 "configure"
++#line 7275 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -6540,16 +7291,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6543: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7294: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6546: \$? = $ac_status" >&5
++ echo "$as_me:7297: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6549: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7300: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6552: \$? = $ac_status" >&5
++ echo "$as_me:7303: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dir_opendir=yes
+ else
+@@ -6560,14 +7311,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6563: result: $ac_cv_lib_dir_opendir" >&5
++echo "$as_me:7314: 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:6570: checking for opendir in -lx" >&5
++ echo "$as_me:7321: 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
+@@ -6575,7 +7326,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lx $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6578 "configure"
++#line 7329 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -6594,16 +7345,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6597: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7348: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6600: \$? = $ac_status" >&5
++ echo "$as_me:7351: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6603: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7354: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6606: \$? = $ac_status" >&5
++ echo "$as_me:7357: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_x_opendir=yes
+ else
+@@ -6614,7 +7365,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6617: result: $ac_cv_lib_x_opendir" >&5
++echo "$as_me:7368: 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"
+@@ -6622,13 +7373,13 @@
+
+ fi
+
+-echo "$as_me:6625: checking whether time.h and sys/time.h may both be included" >&5
++echo "$as_me:7376: 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 6631 "configure"
++#line 7382 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -6644,16 +7395,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6647: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7398: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6650: \$? = $ac_status" >&5
++ echo "$as_me:7401: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6653: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7404: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6656: \$? = $ac_status" >&5
++ echo "$as_me:7407: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_time=yes
+ else
+@@ -6663,7 +7414,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6666: result: $ac_cv_header_time" >&5
++echo "$as_me:7417: result: $ac_cv_header_time" >&5
+ echo "${ECHO_T}$ac_cv_header_time" >&6
+ if test $ac_cv_header_time = yes; then
+
+@@ -6673,14 +7424,14 @@
+
+ fi
+
+-echo "$as_me:6676: checking for regular-expression headers" >&5
++echo "$as_me:7427: checking for regular-expression headers" >&5
+ echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
+ if test "${cf_cv_regex+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6683 "configure"
++#line 7434 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <regex.h>
+@@ -6698,16 +7449,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6701: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7452: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6704: \$? = $ac_status" >&5
++ echo "$as_me:7455: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6707: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7458: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6710: \$? = $ac_status" >&5
++ echo "$as_me:7461: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_regex="regex.h"
+ else
+@@ -6715,7 +7466,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6718 "configure"
++#line 7469 "configure"
+ #include "confdefs.h"
+ #include <regexp.h>
+ int
+@@ -6730,16 +7481,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6733: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7484: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6736: \$? = $ac_status" >&5
++ echo "$as_me:7487: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6739: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7490: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6742: \$? = $ac_status" >&5
++ echo "$as_me:7493: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_regex="regexp.h"
+ else
+@@ -6749,7 +7500,7 @@
+ cf_save_LIBS="$LIBS"
+ LIBS="-lgen $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6752 "configure"
++#line 7503 "configure"
+ #include "confdefs.h"
+ #include <regexpr.h>
+ int
+@@ -6764,16 +7515,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6767: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7518: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6770: \$? = $ac_status" >&5
++ echo "$as_me:7521: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6773: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7524: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6776: \$? = $ac_status" >&5
++ echo "$as_me:7527: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_regex="regexpr.h"
+ else
+@@ -6789,7 +7540,7 @@
+
+ fi
+
+-echo "$as_me:6792: result: $cf_cv_regex" >&5
++echo "$as_me:7543: result: $cf_cv_regex" >&5
+ echo "${ECHO_T}$cf_cv_regex" >&6
+ case $cf_cv_regex in
+ regex.h) cat >>confdefs.h <<\EOF
+@@ -6825,23 +7576,23 @@
+
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:6828: checking for $ac_header" >&5
++echo "$as_me:7579: 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 6834 "configure"
++#line 7585 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:6838: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:7589: \"$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:6844: \$? = $ac_status" >&5
++ echo "$as_me:7595: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -6860,7 +7611,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:6863: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:7614: 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
+@@ -6874,7 +7625,7 @@
+ # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
+ if test "$ISC" = yes ; then
+
+-echo "$as_me:6877: checking for main in -lcposix" >&5
++echo "$as_me:7628: 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
+@@ -6882,7 +7633,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lcposix $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6885 "configure"
++#line 7636 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -6894,16 +7645,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6897: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7648: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6900: \$? = $ac_status" >&5
++ echo "$as_me:7651: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6903: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7654: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6906: \$? = $ac_status" >&5
++ echo "$as_me:7657: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_cposix_main=yes
+ else
+@@ -6914,7 +7665,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6917: result: $ac_cv_lib_cposix_main" >&5
++echo "$as_me:7668: result: $ac_cv_lib_cposix_main" >&5
+ echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6
+ if test $ac_cv_lib_cposix_main = yes; then
+ cat >>confdefs.h <<EOF
+@@ -6925,7 +7676,7 @@
+
+ fi
+
+- echo "$as_me:6928: checking for bzero in -linet" >&5
++ echo "$as_me:7679: 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
+@@ -6933,7 +7684,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-linet $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6936 "configure"
++#line 7687 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -6952,16 +7703,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6955: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7706: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6958: \$? = $ac_status" >&5
++ echo "$as_me:7709: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6961: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7712: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6964: \$? = $ac_status" >&5
++ echo "$as_me:7715: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_inet_bzero=yes
+ else
+@@ -6972,21 +7723,21 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6975: result: $ac_cv_lib_inet_bzero" >&5
++echo "$as_me:7726: result: $ac_cv_lib_inet_bzero" >&5
+ echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
+ if test $ac_cv_lib_inet_bzero = yes; then
+ LIBS="$LIBS -linet"
+ fi
+ fi
+
+-echo "$as_me:6982: checking if sys/time.h works with sys/select.h" >&5
++echo "$as_me:7733: 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 6989 "configure"
++#line 7740 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -7006,16 +7757,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7009: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7760: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7012: \$? = $ac_status" >&5
++ echo "$as_me:7763: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7015: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7766: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7018: \$? = $ac_status" >&5
++ echo "$as_me:7769: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_sys_time_select=yes
+ else
+@@ -7027,7 +7778,7 @@
+
+ fi
+
+-echo "$as_me:7030: result: $cf_cv_sys_time_select" >&5
++echo "$as_me:7781: 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
+@@ -7040,7 +7791,7 @@
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+-echo "$as_me:7043: checking for $CC option to accept ANSI C" >&5
++echo "$as_me:7794: 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
+@@ -7048,7 +7799,7 @@
+ ac_cv_prog_cc_stdc=no
+ ac_save_CC=$CC
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7051 "configure"
++#line 7802 "configure"
+ #include "confdefs.h"
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -7097,16 +7848,16 @@
+ do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7100: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7851: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7103: \$? = $ac_status" >&5
++ echo "$as_me:7854: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7106: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7857: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7109: \$? = $ac_status" >&5
++ echo "$as_me:7860: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+ break
+@@ -7123,21 +7874,21 @@
+
+ case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+- echo "$as_me:7126: result: none needed" >&5
++ echo "$as_me:7877: result: none needed" >&5
+ echo "${ECHO_T}none needed" >&6 ;;
+ *)
+- echo "$as_me:7129: result: $ac_cv_prog_cc_stdc" >&5
++ echo "$as_me:7880: 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:7134: checking for an ANSI C-conforming const" >&5
++echo "$as_me:7885: 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 7140 "configure"
++#line 7891 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -7195,16 +7946,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7198: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7949: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7201: \$? = $ac_status" >&5
++ echo "$as_me:7952: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7204: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7955: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7207: \$? = $ac_status" >&5
++ echo "$as_me:7958: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_const=yes
+ else
+@@ -7214,7 +7965,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:7217: result: $ac_cv_c_const" >&5
++echo "$as_me:7968: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+
+@@ -7224,7 +7975,7 @@
+
+ fi
+
+-echo "$as_me:7227: checking for inline" >&5
++echo "$as_me:7978: 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
+@@ -7232,7 +7983,7 @@
+ ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7235 "configure"
++#line 7986 "configure"
+ #include "confdefs.h"
+ #ifndef __cplusplus
+ static $ac_kw int static_foo () {return 0; }
+@@ -7241,16 +7992,16 @@
+
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7244: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7995: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7247: \$? = $ac_status" >&5
++ echo "$as_me:7998: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7250: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8001: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7253: \$? = $ac_status" >&5
++ echo "$as_me:8004: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_inline=$ac_kw; break
+ else
+@@ -7261,7 +8012,7 @@
+ done
+
+ fi
+-echo "$as_me:7264: result: $ac_cv_c_inline" >&5
++echo "$as_me:8015: result: $ac_cv_c_inline" >&5
+ echo "${ECHO_T}$ac_cv_c_inline" >&6
+ case $ac_cv_c_inline in
+ inline | yes) ;;
+@@ -7280,14 +8031,14 @@
+ #define CC_HAS_INLINE_FUNCS 1
+ EOF
+
+-echo "$as_me:7283: checking if unsigned literals are legal" >&5
++echo "$as_me:8034: 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 7290 "configure"
++#line 8041 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -7299,16 +8050,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7302: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8053: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7305: \$? = $ac_status" >&5
++ echo "$as_me:8056: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7308: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8059: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7311: \$? = $ac_status" >&5
++ echo "$as_me:8062: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_unsigned_literals=yes
+ else
+@@ -7320,10 +8071,10 @@
+
+ fi
+
+-echo "$as_me:7323: result: $cf_cv_unsigned_literals" >&5
++echo "$as_me:8074: result: $cf_cv_unsigned_literals" >&5
+ echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
+
+-echo "$as_me:7326: checking for type of chtype" >&5
++echo "$as_me:8077: 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
+@@ -7333,7 +8084,7 @@
+ cf_cv_typeof_chtype=long
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7336 "configure"
++#line 8087 "configure"
+ #include "confdefs.h"
+
+ #ifdef USE_WIDEC_SUPPORT
+@@ -7380,15 +8131,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:7383: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8134: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7386: \$? = $ac_status" >&5
++ echo "$as_me:8137: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:7388: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8139: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7391: \$? = $ac_status" >&5
++ echo "$as_me:8142: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_typeof_chtype=`cat cf_test.out`
+ else
+@@ -7403,7 +8154,7 @@
+
+ fi
+
+-echo "$as_me:7406: result: $cf_cv_typeof_chtype" >&5
++echo "$as_me:8157: result: $cf_cv_typeof_chtype" >&5
+ echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
+
+ cat >>confdefs.h <<EOF
+@@ -7416,14 +8167,14 @@
+
+ ### Checks for external-data
+
+-echo "$as_me:7419: checking if external errno is declared" >&5
++echo "$as_me:8170: 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 7426 "configure"
++#line 8177 "configure"
+ #include "confdefs.h"
+
+ #ifdef HAVE_STDLIB_H
+@@ -7441,16 +8192,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7444: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8195: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7447: \$? = $ac_status" >&5
++ echo "$as_me:8198: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7450: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8201: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7453: \$? = $ac_status" >&5
++ echo "$as_me:8204: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_dcl_errno=yes
+ else
+@@ -7461,7 +8212,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7464: result: $cf_cv_dcl_errno" >&5
++echo "$as_me:8215: result: $cf_cv_dcl_errno" >&5
+ echo "${ECHO_T}$cf_cv_dcl_errno" >&6
+
+ if test "$cf_cv_dcl_errno" = no ; then
+@@ -7476,14 +8227,14 @@
+
+ # It's possible (for near-UNIX clones) that the data doesn't exist
+
+-echo "$as_me:7479: checking if external errno exists" >&5
++echo "$as_me:8230: 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 7486 "configure"
++#line 8237 "configure"
+ #include "confdefs.h"
+
+ #undef errno
+@@ -7498,16 +8249,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7501: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8252: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7504: \$? = $ac_status" >&5
++ echo "$as_me:8255: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7507: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8258: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7510: \$? = $ac_status" >&5
++ echo "$as_me:8261: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have_errno=yes
+ else
+@@ -7518,7 +8269,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7521: result: $cf_cv_have_errno" >&5
++echo "$as_me:8272: result: $cf_cv_have_errno" >&5
+ echo "${ECHO_T}$cf_cv_have_errno" >&6
+
+ if test "$cf_cv_have_errno" = yes ; then
+@@ -7531,7 +8282,7 @@
+
+ fi
+
+-echo "$as_me:7534: checking if data-only library module links" >&5
++echo "$as_me:8285: 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
+@@ -7539,20 +8290,20 @@
+
+ rm -f conftest.a
+ cat >conftest.$ac_ext <<EOF
+-#line 7542 "configure"
++#line 8293 "configure"
+ int testdata[3] = { 123, 456, 789 };
+ EOF
+- if { (eval echo "$as_me:7545: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:8296: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7548: \$? = $ac_status" >&5
++ echo "$as_me:8299: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ mv conftest.o data.o && \
+ ( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
+ fi
+ rm -f conftest.$ac_ext data.o
+ cat >conftest.$ac_ext <<EOF
+-#line 7555 "configure"
++#line 8306 "configure"
+ int testfunc()
+ {
+ #if defined(NeXT)
+@@ -7565,23 +8316,23 @@
+ #endif
+ }
+ EOF
+- if { (eval echo "$as_me:7568: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:8319: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7571: \$? = $ac_status" >&5
++ echo "$as_me:8322: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ mv conftest.o func.o && \
+ ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
+ fi
+ rm -f conftest.$ac_ext func.o
+- ( eval $ac_cv_prog_RANLIB conftest.a ) 2>&5 >/dev/null
++ ( eval $RANLIB conftest.a ) 2>&5 >/dev/null
+ cf_saveLIBS="$LIBS"
+ LIBS="conftest.a $LIBS"
+ if test "$cross_compiling" = yes; then
+ cf_cv_link_dataonly=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7584 "configure"
++#line 8335 "configure"
+ #include "confdefs.h"
+
+ int main()
+@@ -7592,15 +8343,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:7595: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8346: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7598: \$? = $ac_status" >&5
++ echo "$as_me:8349: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:7600: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8351: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7603: \$? = $ac_status" >&5
++ echo "$as_me:8354: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_link_dataonly=yes
+ else
+@@ -7615,7 +8366,7 @@
+
+ fi
+
+-echo "$as_me:7618: result: $cf_cv_link_dataonly" >&5
++echo "$as_me:8369: result: $cf_cv_link_dataonly" >&5
+ echo "${ECHO_T}$cf_cv_link_dataonly" >&6
+
+ if test "$cf_cv_link_dataonly" = no ; then
+@@ -7652,13 +8403,13 @@
+
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:7655: checking for $ac_func" >&5
++echo "$as_me:8406: 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 7661 "configure"
++#line 8412 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -7689,16 +8440,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7692: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8443: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7695: \$? = $ac_status" >&5
++ echo "$as_me:8446: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7698: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8449: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7701: \$? = $ac_status" >&5
++ echo "$as_me:8452: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -7708,7 +8459,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:7711: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:8462: 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
+@@ -7720,14 +8471,14 @@
+
+ if test "$with_getcap" = "yes" ; then
+
+-echo "$as_me:7723: checking for terminal-capability database functions" >&5
++echo "$as_me:8474: checking for terminal-capability database functions" >&5
+ echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6
+ if test "${cf_cv_cgetent+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7730 "configure"
++#line 8481 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -7747,16 +8498,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7750: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8501: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7753: \$? = $ac_status" >&5
++ echo "$as_me:8504: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7756: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8507: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7759: \$? = $ac_status" >&5
++ echo "$as_me:8510: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cgetent=yes
+ else
+@@ -7768,7 +8519,7 @@
+
+ fi
+
+-echo "$as_me:7771: result: $cf_cv_cgetent" >&5
++echo "$as_me:8522: 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
+@@ -7776,14 +8527,14 @@
+
+ fi
+
+-echo "$as_me:7779: checking for isascii" >&5
++echo "$as_me:8530: 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 7786 "configure"
++#line 8537 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ int
+@@ -7795,16 +8546,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7798: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8549: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7801: \$? = $ac_status" >&5
++ echo "$as_me:8552: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7804: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8555: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7807: \$? = $ac_status" >&5
++ echo "$as_me:8558: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have_isascii=yes
+ else
+@@ -7815,17 +8566,17 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7818: result: $cf_cv_have_isascii" >&5
++echo "$as_me:8569: result: $cf_cv_have_isascii" >&5
+ echo "${ECHO_T}$cf_cv_have_isascii" >&6
+ test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_ISASCII 1
+ EOF
+
+ if test "$ac_cv_func_sigaction" = yes; then
+-echo "$as_me:7825: checking whether sigaction needs _POSIX_SOURCE" >&5
++echo "$as_me:8576: 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 7828 "configure"
++#line 8579 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -7839,16 +8590,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7842: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8593: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7845: \$? = $ac_status" >&5
++ echo "$as_me:8596: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7848: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8599: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7851: \$? = $ac_status" >&5
++ echo "$as_me:8602: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ sigact_bad=no
+ else
+@@ -7856,7 +8607,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7859 "configure"
++#line 8610 "configure"
+ #include "confdefs.h"
+
+ #define _POSIX_SOURCE
+@@ -7871,16 +8622,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7874: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8625: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7877: \$? = $ac_status" >&5
++ echo "$as_me:8628: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7880: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8631: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7883: \$? = $ac_status" >&5
++ echo "$as_me:8634: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ sigact_bad=yes
+ cat >>confdefs.h <<\EOF
+@@ -7895,7 +8646,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:7898: result: $sigact_bad" >&5
++echo "$as_me:8649: result: $sigact_bad" >&5
+ echo "${ECHO_T}$sigact_bad" >&6
+ fi
+
+@@ -7906,23 +8657,23 @@
+
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:7909: checking for $ac_header" >&5
++echo "$as_me:8660: 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 7915 "configure"
++#line 8666 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:7919: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:8670: \"$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:7925: \$? = $ac_status" >&5
++ echo "$as_me:8676: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -7941,7 +8692,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:7944: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:8695: 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
+@@ -7956,23 +8707,23 @@
+ for ac_header in sys/termio.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:7959: checking for $ac_header" >&5
++echo "$as_me:8710: 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 7965 "configure"
++#line 8716 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:7969: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:8720: \"$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:7975: \$? = $ac_status" >&5
++ echo "$as_me:8726: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -7991,7 +8742,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:7994: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:8745: 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
+@@ -8009,10 +8760,10 @@
+ *) termios_bad=maybe ;;
+ esac
+ if test "$termios_bad" = maybe ; then
+- echo "$as_me:8012: checking whether termios.h needs _POSIX_SOURCE" >&5
++ echo "$as_me:8763: 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 8015 "configure"
++#line 8766 "configure"
+ #include "confdefs.h"
+ #include <termios.h>
+ int
+@@ -8024,16 +8775,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8027: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8778: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8030: \$? = $ac_status" >&5
++ echo "$as_me:8781: \$? = $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:8784: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8036: \$? = $ac_status" >&5
++ echo "$as_me:8787: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ termios_bad=no
+ else
+@@ -8041,7 +8792,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8044 "configure"
++#line 8795 "configure"
+ #include "confdefs.h"
+
+ #define _POSIX_SOURCE
+@@ -8055,16 +8806,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8058: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8809: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8061: \$? = $ac_status" >&5
++ echo "$as_me:8812: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8064: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8815: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8067: \$? = $ac_status" >&5
++ echo "$as_me:8818: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ termios_bad=unknown
+ else
+@@ -8079,19 +8830,19 @@
+
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- echo "$as_me:8082: result: $termios_bad" >&5
++ echo "$as_me:8833: result: $termios_bad" >&5
+ echo "${ECHO_T}$termios_bad" >&6
+ fi
+ fi
+
+-echo "$as_me:8087: checking for tcgetattr" >&5
++echo "$as_me:8838: 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 8094 "configure"
++#line 8845 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -8119,16 +8870,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8122: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8873: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8125: \$? = $ac_status" >&5
++ echo "$as_me:8876: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8128: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8879: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8131: \$? = $ac_status" >&5
++ echo "$as_me:8882: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have_tcgetattr=yes
+ else
+@@ -8138,20 +8889,20 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8141: result: $cf_cv_have_tcgetattr" >&5
++echo "$as_me:8892: result: $cf_cv_have_tcgetattr" >&5
+ echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
+ test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_TCGETATTR 1
+ EOF
+
+-echo "$as_me:8147: checking for vsscanf function or workaround" >&5
++echo "$as_me:8898: 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 8154 "configure"
++#line 8905 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -8167,16 +8918,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8170: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8921: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8173: \$? = $ac_status" >&5
++ echo "$as_me:8924: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8176: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8927: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8179: \$? = $ac_status" >&5
++ echo "$as_me:8930: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_vsscanf=vsscanf
+ else
+@@ -8184,7 +8935,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8187 "configure"
++#line 8938 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -8206,16 +8957,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8209: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8960: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8212: \$? = $ac_status" >&5
++ echo "$as_me:8963: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8215: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8966: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8218: \$? = $ac_status" >&5
++ echo "$as_me:8969: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_vsscanf=vfscanf
+ else
+@@ -8223,7 +8974,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8226 "configure"
++#line 8977 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -8245,16 +8996,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8248: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8999: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8251: \$? = $ac_status" >&5
++ echo "$as_me:9002: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8254: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9005: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8257: \$? = $ac_status" >&5
++ echo "$as_me:9008: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_vsscanf=_doscan
+ else
+@@ -8269,7 +9020,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8272: result: $cf_cv_func_vsscanf" >&5
++echo "$as_me:9023: result: $cf_cv_func_vsscanf" >&5
+ echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
+
+ case $cf_cv_func_vsscanf in #(vi
+@@ -8287,7 +9038,7 @@
+ ;;
+ esac
+
+-echo "$as_me:8290: checking for working mkstemp" >&5
++echo "$as_me:9041: 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
+@@ -8295,13 +9046,13 @@
+
+ rm -f conftest*
+ if test "$cross_compiling" = yes; then
+- echo "$as_me:8298: checking for mkstemp" >&5
++ echo "$as_me:9049: 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 8304 "configure"
++#line 9055 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char mkstemp (); below. */
+@@ -8332,16 +9083,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8335: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9086: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8338: \$? = $ac_status" >&5
++ echo "$as_me:9089: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8341: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9092: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8344: \$? = $ac_status" >&5
++ echo "$as_me:9095: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_mkstemp=yes
+ else
+@@ -8351,12 +9102,12 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8354: result: $ac_cv_func_mkstemp" >&5
++echo "$as_me:9105: result: $ac_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8359 "configure"
++#line 9110 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -8394,15 +9145,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8397: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9148: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8400: \$? = $ac_status" >&5
++ echo "$as_me:9151: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:8402: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9153: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8405: \$? = $ac_status" >&5
++ echo "$as_me:9156: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_mkstemp=yes
+
+@@ -8417,7 +9168,7 @@
+ fi
+
+ fi
+-echo "$as_me:8420: result: $cf_cv_func_mkstemp" >&5
++echo "$as_me:9171: result: $cf_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
+ if test "$cf_cv_func_mkstemp" = yes ; then
+ cat >>confdefs.h <<\EOF
+@@ -8434,21 +9185,21 @@
+ fi
+
+ if test "$cross_compiling" = yes ; then
+- { echo "$as_me:8437: WARNING: cross compiling: assume setvbuf params not reversed" >&5
++ { echo "$as_me:9188: 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:8440: checking whether setvbuf arguments are reversed" >&5
++ echo "$as_me:9191: 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:8446: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:9197: 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 8451 "configure"
++#line 9202 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ /* If setvbuf has the reversed format, exit 0. */
+@@ -8465,15 +9216,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8468: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9219: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8471: \$? = $ac_status" >&5
++ echo "$as_me:9222: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:8473: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9224: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8476: \$? = $ac_status" >&5
++ echo "$as_me:9227: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_setvbuf_reversed=yes
+ else
+@@ -8486,7 +9237,7 @@
+ fi
+ rm -f core core.* *.core
+ fi
+-echo "$as_me:8489: result: $ac_cv_func_setvbuf_reversed" >&5
++echo "$as_me:9240: 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
+
+@@ -8497,13 +9248,13 @@
+ fi
+
+ fi
+-echo "$as_me:8500: checking return type of signal handlers" >&5
++echo "$as_me:9251: 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 8506 "configure"
++#line 9257 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -8525,16 +9276,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8528: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9279: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8531: \$? = $ac_status" >&5
++ echo "$as_me:9282: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8534: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9285: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8537: \$? = $ac_status" >&5
++ echo "$as_me:9288: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_signal=void
+ else
+@@ -8544,21 +9295,21 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:8547: result: $ac_cv_type_signal" >&5
++echo "$as_me:9298: 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:8554: checking for type sigaction_t" >&5
++echo "$as_me:9305: 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 8561 "configure"
++#line 9312 "configure"
+ #include "confdefs.h"
+
+ #include <signal.h>
+@@ -8571,16 +9322,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8574: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9325: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8577: \$? = $ac_status" >&5
++ echo "$as_me:9328: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8580: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9331: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8583: \$? = $ac_status" >&5
++ echo "$as_me:9334: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_type_sigaction=yes
+ else
+@@ -8591,13 +9342,13 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+
+-echo "$as_me:8594: result: $cf_cv_type_sigaction" >&5
++echo "$as_me:9345: result: $cf_cv_type_sigaction" >&5
+ echo "${ECHO_T}$cf_cv_type_sigaction" >&6
+ test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_TYPE_SIGACTION 1
+ EOF
+
+-echo "$as_me:8600: checking declaration of size-change" >&5
++echo "$as_me:9351: 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
+@@ -8612,7 +9363,7 @@
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8615 "configure"
++#line 9366 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #ifdef HAVE_TERMIOS_H
+@@ -8656,16 +9407,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8659: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9410: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8662: \$? = $ac_status" >&5
++ echo "$as_me:9413: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8665: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9416: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8668: \$? = $ac_status" >&5
++ echo "$as_me:9419: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_sizechange=yes
+ else
+@@ -8684,7 +9435,7 @@
+ done
+
+ fi
+-echo "$as_me:8687: result: $cf_cv_sizechange" >&5
++echo "$as_me:9438: result: $cf_cv_sizechange" >&5
+ echo "${ECHO_T}$cf_cv_sizechange" >&6
+ if test "$cf_cv_sizechange" != no ; then
+ cat >>confdefs.h <<\EOF
+@@ -8701,13 +9452,13 @@
+ esac
+ fi
+
+-echo "$as_me:8704: checking for memmove" >&5
++echo "$as_me:9455: 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 8710 "configure"
++#line 9461 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char memmove (); below. */
+@@ -8738,16 +9489,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8741: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9492: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8744: \$? = $ac_status" >&5
++ echo "$as_me:9495: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8747: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9498: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8750: \$? = $ac_status" >&5
++ echo "$as_me:9501: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_memmove=yes
+ else
+@@ -8757,19 +9508,19 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8760: result: $ac_cv_func_memmove" >&5
++echo "$as_me:9511: 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:8766: checking for bcopy" >&5
++echo "$as_me:9517: 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 8772 "configure"
++#line 9523 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char bcopy (); below. */
+@@ -8800,16 +9551,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8803: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9554: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8806: \$? = $ac_status" >&5
++ echo "$as_me:9557: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8809: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9560: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8812: \$? = $ac_status" >&5
++ echo "$as_me:9563: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_bcopy=yes
+ else
+@@ -8819,11 +9570,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8822: result: $ac_cv_func_bcopy" >&5
++echo "$as_me:9573: 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:8826: checking if bcopy does overlapping moves" >&5
++ echo "$as_me:9577: 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
+@@ -8833,7 +9584,7 @@
+ cf_cv_good_bcopy=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8836 "configure"
++#line 9587 "configure"
+ #include "confdefs.h"
+
+ int main() {
+@@ -8847,15 +9598,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8850: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9601: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8853: \$? = $ac_status" >&5
++ echo "$as_me:9604: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:8855: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9606: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8858: \$? = $ac_status" >&5
++ echo "$as_me:9609: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_good_bcopy=yes
+ else
+@@ -8868,7 +9619,7 @@
+ fi
+
+ fi
+-echo "$as_me:8871: result: $cf_cv_good_bcopy" >&5
++echo "$as_me:9622: result: $cf_cv_good_bcopy" >&5
+ echo "${ECHO_T}$cf_cv_good_bcopy" >&6
+
+ else
+@@ -8889,7 +9640,7 @@
+
+ fi
+
+-echo "$as_me:8892: checking if poll really works" >&5
++echo "$as_me:9643: 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
+@@ -8899,7 +9650,7 @@
+ cf_cv_working_poll=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8902 "configure"
++#line 9653 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -8920,15 +9671,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8923: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9674: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8926: \$? = $ac_status" >&5
++ echo "$as_me:9677: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:8928: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9679: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8931: \$? = $ac_status" >&5
++ echo "$as_me:9682: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_working_poll=yes
+ else
+@@ -8940,34 +9691,36 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:8943: result: $cf_cv_working_poll" >&5
++echo "$as_me:9694: result: $cf_cv_working_poll" >&5
+ echo "${ECHO_T}$cf_cv_working_poll" >&6
+ test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
+ #define HAVE_WORKING_POLL 1
+ EOF
+
+ if test -z "$cf_user_CFLAGS" ; then
+- CFLAGS=`echo ${CFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
+- CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
++ CFLAGS=`echo ${CFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
++ CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
+ fi
+
+-echo "$as_me:8954: checking for stdbool.h" >&5
++# Just in case, check if the C compiler has a bool type.
++
++echo "$as_me:9707: checking for stdbool.h" >&5
+ echo $ECHO_N "checking for stdbool.h... $ECHO_C" >&6
+ if test "${ac_cv_header_stdbool_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8960 "configure"
++#line 9713 "configure"
+ #include "confdefs.h"
+ #include <stdbool.h>
+ _ACEOF
+-if { (eval echo "$as_me:8964: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:9717: \"$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:8970: \$? = $ac_status" >&5
++ echo "$as_me:9723: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -8986,7 +9739,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:8989: result: $ac_cv_header_stdbool_h" >&5
++echo "$as_me:9742: result: $ac_cv_header_stdbool_h" >&5
+ echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
+ if test $ac_cv_header_stdbool_h = yes; then
+ cf_cv_header_stdbool_h=1
+@@ -8994,14 +9747,14 @@
+ cf_cv_header_stdbool_h=0
+ fi
+
+-echo "$as_me:8997: checking for builtin bool type" >&5
++echo "$as_me:9750: 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
++if test "${cv_cv_cc_bool_type+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9004 "configure"
++#line 9757 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -9016,34 +9769,35 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9019: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9772: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9022: \$? = $ac_status" >&5
++ echo "$as_me:9775: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9025: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9778: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9028: \$? = $ac_status" >&5
++ echo "$as_me:9781: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_cc_bool_type=1
++ cv_cv_cc_bool_type=1
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_cc_bool_type=0
++cv_cv_cc_bool_type=0
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+
+-if test "$cf_cv_cc_bool_type" = 1
+-then echo "$as_me:9041: result: yes" >&5
++if test "$cv_cv_cc_bool_type" = 1
++then echo "$as_me:9794: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else echo "$as_me:9043: result: no" >&5
++else echo "$as_me:9796: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
++# Check for C++ compiler characteristics (and ensure that it's there!)
+ if test -n "$CXX" ; then
+ ac_ext=cc
+ ac_cpp='$CXXCPP $CPPFLAGS'
+@@ -9060,7 +9814,7 @@
+ cf_stdcpp_libname=stdc++
+ ;;
+ esac
+-echo "$as_me:9063: checking for library $cf_stdcpp_libname" >&5
++echo "$as_me:9817: 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
+@@ -9069,7 +9823,7 @@
+ cf_save="$LIBS"
+ LIBS="$LIBS -l$cf_stdcpp_libname"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9072 "configure"
++#line 9826 "configure"
+ #include "confdefs.h"
+
+ #include <strstream.h>
+@@ -9085,16 +9839,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9088: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9842: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9091: \$? = $ac_status" >&5
++ echo "$as_me:9845: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9094: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9848: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9097: \$? = $ac_status" >&5
++ echo "$as_me:9851: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_libstdcpp=yes
+ else
+@@ -9106,7 +9860,7 @@
+ LIBS="$cf_save"
+
+ fi
+-echo "$as_me:9109: result: $cf_cv_libstdcpp" >&5
++echo "$as_me:9863: result: $cf_cv_libstdcpp" >&5
+ echo "${ECHO_T}$cf_cv_libstdcpp" >&6
+ test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
+ fi
+@@ -9126,13 +9880,13 @@
+ cf_gpp_libname=g++
+ ;;
+ esac
+-if test "$ac_cv_cxx_compiler_gnu" = yes; then
+- echo "$as_me:9130: checking for lib$cf_gpp_libname" >&5
++if test "$GXX" = yes; then
++ echo "$as_me:9884: checking for lib$cf_gpp_libname" >&5
+ echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
+ cf_save="$LIBS"
+ LIBS="$LIBS -l$cf_gpp_libname"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9135 "configure"
++#line 9889 "configure"
+ #include "confdefs.h"
+
+ #include <$cf_gpp_libname/builtin.h>
+@@ -9146,16 +9900,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9149: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9903: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9152: \$? = $ac_status" >&5
++ echo "$as_me:9906: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9155: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9909: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9158: \$? = $ac_status" >&5
++ echo "$as_me:9912: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cxx_library=yes
+ CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
+@@ -9174,7 +9928,7 @@
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9177 "configure"
++#line 9931 "configure"
+ #include "confdefs.h"
+
+ #include <builtin.h>
+@@ -9188,16 +9942,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9191: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9945: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9194: \$? = $ac_status" >&5
++ echo "$as_me:9948: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9197: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9951: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9200: \$? = $ac_status" >&5
++ echo "$as_me:9954: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cxx_library=yes
+ CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
+@@ -9214,7 +9968,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS="$cf_save"
+- echo "$as_me:9217: result: $cf_cxx_library" >&5
++ echo "$as_me:9971: result: $cf_cxx_library" >&5
+ echo "${ECHO_T}$cf_cxx_library" >&6
+ fi
+
+@@ -9229,7 +9983,7 @@
+ 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
+-echo "$as_me:9232: checking how to run the C++ preprocessor" >&5
++echo "$as_me:9986: 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
+@@ -9246,18 +10000,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 9249 "configure"
++#line 10003 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:9254: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10008: \"$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:9260: \$? = $ac_status" >&5
++ echo "$as_me:10014: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -9280,17 +10034,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9283 "configure"
++#line 10037 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:9287: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10041: \"$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:9293: \$? = $ac_status" >&5
++ echo "$as_me:10047: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -9327,7 +10081,7 @@
+ else
+ ac_cv_prog_CXXCPP=$CXXCPP
+ fi
+-echo "$as_me:9330: result: $CXXCPP" >&5
++echo "$as_me:10084: result: $CXXCPP" >&5
+ echo "${ECHO_T}$CXXCPP" >&6
+ ac_preproc_ok=false
+ for ac_cxx_preproc_warn_flag in '' yes
+@@ -9337,18 +10091,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 9340 "configure"
++#line 10094 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:9345: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10099: \"$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:9351: \$? = $ac_status" >&5
++ echo "$as_me:10105: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -9371,17 +10125,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9374 "configure"
++#line 10128 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:9378: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10132: \"$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:9384: \$? = $ac_status" >&5
++ echo "$as_me:10138: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -9409,7 +10163,7 @@
+ if $ac_preproc_ok; then
+ :
+ else
+- { { echo "$as_me:9412: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
++ { { echo "$as_me:10166: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+ echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -9423,23 +10177,23 @@
+ for ac_header in typeinfo
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:9426: checking for $ac_header" >&5
++echo "$as_me:10180: 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 9432 "configure"
++#line 10186 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:9436: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10190: \"$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:9442: \$? = $ac_status" >&5
++ echo "$as_me:10196: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -9458,7 +10212,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:9461: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:10215: 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
+@@ -9468,23 +10222,23 @@
+ fi
+ done
+
+-echo "$as_me:9471: checking for stdbool.h" >&5
++echo "$as_me:10225: checking for stdbool.h" >&5
+ echo $ECHO_N "checking for stdbool.h... $ECHO_C" >&6
+ if test "${ac_cv_header_stdbool_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9477 "configure"
++#line 10231 "configure"
+ #include "confdefs.h"
+ #include <stdbool.h>
+ _ACEOF
+-if { (eval echo "$as_me:9481: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10235: \"$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:9487: \$? = $ac_status" >&5
++ echo "$as_me:10241: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -9503,7 +10257,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:9506: result: $ac_cv_header_stdbool_h" >&5
++echo "$as_me:10260: result: $ac_cv_header_stdbool_h" >&5
+ echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
+ if test $ac_cv_header_stdbool_h = yes; then
+ cf_cv_header_stdbool_h=1
+@@ -9511,14 +10265,14 @@
+ cf_cv_header_stdbool_h=0
+ fi
+
+-echo "$as_me:9514: checking for builtin bool type" >&5
++echo "$as_me:10268: 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
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9521 "configure"
++#line 10275 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -9533,16 +10287,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9536: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10290: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9539: \$? = $ac_status" >&5
++ echo "$as_me:10293: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9542: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10296: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9545: \$? = $ac_status" >&5
++ echo "$as_me:10299: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_builtin_bool=1
+ else
+@@ -9555,13 +10309,13 @@
+ fi
+
+ if test "$cf_cv_builtin_bool" = 1
+-then echo "$as_me:9558: result: yes" >&5
++then echo "$as_me:10312: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else echo "$as_me:9560: result: no" >&5
++else echo "$as_me:10314: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+-echo "$as_me:9564: checking for size of bool" >&5
++echo "$as_me:10318: 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
+@@ -9572,7 +10326,7 @@
+ cf_cv_type_of_bool=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9575 "configure"
++#line 10329 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -9614,15 +10368,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:9617: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10371: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9620: \$? = $ac_status" >&5
++ echo "$as_me:10374: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:9622: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10376: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9625: \$? = $ac_status" >&5
++ echo "$as_me:10379: \$? = $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
+@@ -9640,18 +10394,18 @@
+ fi
+
+ rm -f cf_test.out
+-echo "$as_me:9643: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:10397: 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:9649: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++ { echo "$as_me:10403: 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:9654: checking for special defines needed for etip.h" >&5
++echo "$as_me:10408: 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"
+@@ -9659,11 +10413,11 @@
+ do
+ for cf_excp in "" MATH_EXCEPTION
+ do
+- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu"
++ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -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 9666 "configure"
++#line 10420 "configure"
+ #include "confdefs.h"
+
+ #include <etip.h.in>
+@@ -9677,16 +10431,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9680: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10434: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9683: \$? = $ac_status" >&5
++ echo "$as_me:10437: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9686: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10440: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9689: \$? = $ac_status" >&5
++ echo "$as_me:10443: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ test -n "$cf_math" && cat >>confdefs.h <<EOF
+@@ -9707,12 +10461,12 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ done
+-echo "$as_me:9710: result: $cf_result" >&5
++echo "$as_me:10464: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ CXXFLAGS="$cf_save_CXXFLAGS"
+
+ if test -n "$CXX"; then
+-echo "$as_me:9715: checking if $CXX accepts parameter initialization" >&5
++echo "$as_me:10469: 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
+@@ -9728,7 +10482,7 @@
+ cf_cv_cpp_param_init=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9731 "configure"
++#line 10485 "configure"
+ #include "confdefs.h"
+
+ class TEST {
+@@ -9747,15 +10501,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:9750: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10504: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9753: \$? = $ac_status" >&5
++ echo "$as_me:10507: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:9755: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10509: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9758: \$? = $ac_status" >&5
++ echo "$as_me:10512: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cpp_param_init=yes
+ else
+@@ -9773,7 +10527,7 @@
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ fi
+-echo "$as_me:9776: result: $cf_cv_cpp_param_init" >&5
++echo "$as_me:10530: 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
+@@ -9791,23 +10545,23 @@
+ for ac_header in strstream.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:9794: checking for $ac_header" >&5
++echo "$as_me:10548: 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 9800 "configure"
++#line 10554 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:9804: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10558: \"$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:9810: \$? = $ac_status" >&5
++ echo "$as_me:10564: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -9826,7 +10580,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:9829: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:10583: 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
+@@ -9836,7 +10590,7 @@
+ fi
+ done
+
+-echo "$as_me:9839: checking if $CXX supports vscan function" >&5
++echo "$as_me:10593: checking if $CXX supports vscan function" >&5
+ echo $ECHO_N "checking if $CXX supports vscan function... $ECHO_C" >&6
+ if test "${cf_cv_cpp_vscan_func+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9850,7 +10604,7 @@
+ strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
+ esac
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9853 "configure"
++#line 10607 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -9895,16 +10649,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9898: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10652: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9901: \$? = $ac_status" >&5
++ echo "$as_me:10655: \$? = $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:10658: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9907: \$? = $ac_status" >&5
++ echo "$as_me:10661: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cpp_vscan_func=$cf_vscan_func; break
+ else
+@@ -9917,7 +10671,7 @@
+ done
+
+ fi
+-echo "$as_me:9920: result: $cf_cv_cpp_vscan_func" >&5
++echo "$as_me:10674: result: $cf_cv_cpp_vscan_func" >&5
+ echo "${ECHO_T}$cf_cv_cpp_vscan_func" >&6
+
+ ac_ext=cc
+@@ -9999,7 +10753,7 @@
+ else
+ if test "$cf_cv_header_stdbool_h" = 1 ; then
+
+-echo "$as_me:10002: checking for size of bool" >&5
++echo "$as_me:10756: 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
+@@ -10010,7 +10764,7 @@
+ cf_cv_type_of_bool=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10013 "configure"
++#line 10767 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -10052,15 +10806,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10055: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10809: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10058: \$? = $ac_status" >&5
++ echo "$as_me:10812: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:10060: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10814: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10063: \$? = $ac_status" >&5
++ echo "$as_me:10817: \$? = $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
+@@ -10078,35 +10832,54 @@
+ fi
+
+ rm -f cf_test.out
+-echo "$as_me:10081: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:10835: 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:10087: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++ { echo "$as_me:10841: 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:10093: checking for fallback type of bool" >&5
++ echo "$as_me:10847: 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:10099: result: $cf_cv_type_of_bool" >&5
++ echo "$as_me:10853: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ fi
+ fi
+ fi
+
++# If the C compiler did not declare bool, and we did not determine that the C++
++# compiler does not declare bool, turn on an ifdef in curses.h that makes the
++# ncurses library use the same type as C++ bool. Note that this allows one to
++# specify the type of bool in a configure-script option and postpone
++# integration with the C++ compiler provided that the types are compatible.
++USE_CXX_BOOL=1
++if test $cv_cv_cc_bool_type = 1
++then
++ # oops: C has a bool. Unlikely, but C++ could differ.
++ USE_CXX_BOOL=0
++elif test $cf_cv_builtin_bool = 0
++then
++ # C++ has no bool
++ USE_CXX_BOOL=0
++else
++ # this is the normal case
++ USE_CXX_BOOL='!defined(__cplusplus)'
++fi
++
+ 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:10109: checking for $ac_word" >&5
++echo "$as_me:10882: 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
+@@ -10121,7 +10894,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_gnat_exists="yes"
+-echo "$as_me:10124: found $ac_dir/$ac_word" >&5
++echo "$as_me:10897: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -10130,10 +10903,10 @@
+ fi
+ gnat_exists=$ac_cv_prog_gnat_exists
+ if test -n "$gnat_exists"; then
+- echo "$as_me:10133: result: $gnat_exists" >&5
++ echo "$as_me:10906: result: $gnat_exists" >&5
+ echo "${ECHO_T}$gnat_exists" >&6
+ else
+- echo "$as_me:10136: result: no" >&5
++ echo "$as_me:10909: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -10141,18 +10914,23 @@
+ cf_ada_make=
+ else
+
+-cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
+- sed -e 's/[^0-9 \.]//g' | $AWK '{print $1;}'`
+-case $cf_cv_gnat_version in
++echo "$as_me:10917: checking for gnat version" >&5
++echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
++cf_gnat_version=`$cf_ada_make -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
++ sed -e 's/[^0-9 \.]//g' | $AWK '{print $1;}' | sed -e '2,$d'`
++echo "$as_me:10921: result: $cf_gnat_version" >&5
++echo "${ECHO_T}$cf_gnat_version" >&6
++
++case $cf_gnat_version in
+ 3.1[1-9]*|3.[2-9]*|[4-9].*)
+ cf_cv_prog_gnat_correct=yes
+ ;;
+- *) echo Unsupported GNAT version $cf_cv_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
++ *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
+ cf_cv_prog_gnat_correct=no
+ ;;
+ esac
+-case $cf_cv_gnat_version in
+- 3.1*|[4-9].*)
++case $cf_gnat_version in
++ 3.[1-9]*|[4-9].*)
+ cf_compile_generics=generics
+ cf_generic_objects="\$(GENOBJS)"
+ ;;
+@@ -10163,7 +10941,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:10166: checking for $ac_word" >&5
++echo "$as_me:10944: 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
+@@ -10178,7 +10956,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_M4_exists="yes"
+-echo "$as_me:10181: found $ac_dir/$ac_word" >&5
++echo "$as_me:10959: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -10187,10 +10965,10 @@
+ fi
+ M4_exists=$ac_cv_prog_M4_exists
+ if test -n "$M4_exists"; then
+- echo "$as_me:10190: result: $M4_exists" >&5
++ echo "$as_me:10968: result: $M4_exists" >&5
+ echo "${ECHO_T}$M4_exists" >&6
+ else
+- echo "$as_me:10193: result: no" >&5
++ echo "$as_me:10971: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -10199,7 +10977,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:10202: checking if GNAT works" >&5
++ echo "$as_me:10980: checking if GNAT works" >&5
+ echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
+
+ rm -f conftest*
+@@ -10227,7 +11005,7 @@
+ fi
+ rm -f conftest*
+
+- echo "$as_me:10230: result: $cf_cv_prog_gnat_correct" >&5
++ echo "$as_me:11008: result: $cf_cv_prog_gnat_correct" >&5
+ echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
+ fi
+ fi
+@@ -10270,7 +11048,7 @@
+ withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
+ ;;
+ *)
+- { { echo "$as_me:10273: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:11051: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -10304,7 +11082,7 @@
+ withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
+ ;;
+ *)
+- { { echo "$as_me:10307: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:11085: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -10315,25 +11093,9 @@
+ fi
+ fi
+
+-### It's not possible to appease gcc 2.6.3's conversion-warnings if we're
+-### using a 'char' for bools. gcc 2.7.0's conversion-warnings are broken too
+-### badly to consider using for development purposes, but 2.5.8 is okay.
+-if test -n "$with_warnings"; then
+- case $GCC_VERSION in
+- 2.6.3)
+- if test "$cf_cv_type_of_bool" != "char"; then
+- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
+- fi
+- ;;
+- 2.5*)
+- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
+- ;;
+- esac
+-fi
+-
+ ### Construct the library-subsets, if any, from this set of keywords:
+ ### none, base, ext_funcs, termlib.
+-echo "$as_me:10336: checking for library subsets" >&5
++echo "$as_me:11098: checking for library subsets" >&5
+ echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
+ if test "$with_termlib" = yes ; then
+ LIB_SUBSETS="termlib "
+@@ -10343,7 +11105,7 @@
+ LIB_SUBSETS="${LIB_SUBSETS}base"
+ test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
+ test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+-echo "$as_me:10346: result: $LIB_SUBSETS" >&5
++echo "$as_me:11108: result: $LIB_SUBSETS" >&5
+ echo "${ECHO_T}$LIB_SUBSETS" >&6
+
+ LIB_TRACING=DEBUG
+@@ -10357,9 +11119,9 @@
+
+ ### Construct the list of include-directories to be generated
+
+-CPPFLAGS="$CPPFLAGS -I. -I../include"
++CPPFLAGS="-I. -I../include $CPPFLAGS"
+ if test "$srcdir" != "."; then
+- CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include"
++ CPPFLAGS="-I\$(srcdir)/../include $CPPFLAGS"
+ fi
+ if test "$GCC" != yes; then
+ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
+@@ -10373,9 +11135,9 @@
+ fi
+ fi
+
+-ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
++ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
+ if test "$srcdir" != "."; then
+- ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
++ ACPPFLAGS="-I\$(srcdir)/../../include $ACPPFLAGS"
+ fi
+ if test "$GCC" != yes; then
+ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
+@@ -10390,7 +11152,7 @@
+ fi
+
+ ### Build up pieces for makefile rules
+-echo "$as_me:10393: checking default library suffix" >&5
++echo "$as_me:11155: checking default library suffix" >&5
+ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
+
+ case $DFT_LWR_MODEL in
+@@ -10401,10 +11163,10 @@
+ shared) DFT_ARG_SUFFIX='' ;;
+ esac
+ test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
+-echo "$as_me:10404: result: $DFT_ARG_SUFFIX" >&5
++echo "$as_me:11166: result: $DFT_ARG_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
+
+-echo "$as_me:10407: checking default library-dependency suffix" >&5
++echo "$as_me:11169: checking default library-dependency suffix" >&5
+ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
+
+ case $DFT_LWR_MODEL in
+@@ -10428,10 +11190,10 @@
+ ;;
+ esac
+ fi
+-echo "$as_me:10431: result: $DFT_DEP_SUFFIX" >&5
++echo "$as_me:11193: result: $DFT_DEP_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
+
+-echo "$as_me:10434: checking default object directory" >&5
++echo "$as_me:11196: checking default object directory" >&5
+ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
+
+ case $DFT_LWR_MODEL in
+@@ -10447,13 +11209,14 @@
+ DFT_OBJ_SUBDIR='obj_s' ;;
+ esac
+ esac
+-echo "$as_me:10450: result: $DFT_OBJ_SUBDIR" >&5
++echo "$as_me:11212: result: $DFT_OBJ_SUBDIR" >&5
+ echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
+
+ # libtool thinks it can make c++ shared libraries (perhaps only g++)
+-echo "$as_me:10454: checking c++ library-dependency suffix" >&5
++if test "$cf_with_cxx" = yes ; then
++echo "$as_me:11217: checking c++ library-dependency suffix" >&5
+ echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
+-if test "$with_libtool" = "yes"; then
++if test "$with_libtool" != "no"; then
+ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
+ else
+
+@@ -10472,18 +11235,22 @@
+ esac
+ test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
+ fi
+-echo "$as_me:10475: result: $CXX_LIB_SUFFIX" >&5
++echo "$as_me:11238: result: $CXX_LIB_SUFFIX" >&5
+ echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
+
++fi
++
+ TINFO_LIST="$SHLIB_LIST"
+-test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
++if test "$with_libtool" = no ; then
++ test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
++fi
+
+-echo "$as_me:10481: checking where we will install curses.h" >&5
++echo "$as_me:11248: 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:10486: result: $includedir" >&5
++echo "$as_me:11253: result: $includedir" >&5
+ echo "${ECHO_T}$includedir" >&6
+
+ ### Resolve a conflict between normal and wide-curses by forcing applications
+@@ -10491,7 +11258,7 @@
+ if test "$with_overwrite" != no ; then
+ if test "$NCURSES_LIBUTF8" = 1 ; then
+ NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
+- { echo "$as_me:10494: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
++ { echo "$as_me:11261: 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
+@@ -10509,10 +11276,15 @@
+ PROG_DEPS="$TEST_DEPS"
+ PROG_ARGS="$TEST_ARGS"
+
++### predefined stuff for the test programs
++cat >>confdefs.h <<\EOF
++#define HAVE_SLK_COLOR 1
++EOF
++
+ ### Construct the list of subdirectories for which we'll customize makefiles
+ ### with the appropriate compile-rules.
+
+-echo "$as_me:10515: checking for src modules" >&5
++echo "$as_me:11287: checking for src modules" >&5
+ echo $ECHO_N "checking for src modules... $ECHO_C" >&6
+
+ # dependencies and linker-arguments for test-programs
+@@ -10572,7 +11344,7 @@
+ fi
+ fi
+ done
+-echo "$as_me:10575: result: $cf_cv_src_modules" >&5
++echo "$as_me:11347: result: $cf_cv_src_modules" >&5
+ echo "${ECHO_T}$cf_cv_src_modules" >&6
+ TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
+
+@@ -10641,10 +11413,40 @@
+ EOF
+
+ ### Now that we're done running tests, add the compiler-warnings, if any
+-CFLAGS="$CFLAGS $EXTRA_CFLAGS"
++
++cf_new_cflags=
++cf_new_cppflags=
++for cf_add_cflags in $EXTRA_CFLAGS
++do
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
++fi
+
+ ################################################################################
+-ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/termcap.h include/unctrl.h misc/run_tic.sh:misc/run_tic.in $SUB_MAKEFILES Makefile"
++test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
++ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/termcap.h include/unctrl.h $SUB_MAKEFILES Makefile"
+ ac_config_commands="$ac_config_commands default"
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+@@ -10725,7 +11527,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:10728: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:11530: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -10857,7 +11659,7 @@
+ cat >>$CONFIG_STATUS <<EOF
+ ac_cs_version="\\
+ config.status
+-configured by $0, generated by GNU Autoconf 2.52.20011227,
++configured by $0, generated by GNU Autoconf 2.52.20030208,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+@@ -10901,7 +11703,7 @@
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+- { { echo "$as_me:10904: error: ambiguous option: $1
++ { { echo "$as_me:11706: 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;}
+@@ -10920,7 +11722,7 @@
+ ac_need_defaults=false;;
+
+ # This is an error.
+- -*) { { echo "$as_me:10923: error: unrecognized option: $1
++ -*) { { echo "$as_me:11725: 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;}
+@@ -10939,7 +11741,7 @@
+ ## Running config.status. ##
+ ## ----------------------- ##
+
+-This file was extended by $as_me 2.52.20011227, executed with
++This file was extended by $as_me 2.52.20030208, executed with
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+@@ -10982,7 +11784,7 @@
+ cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
+ cf_cv_system_name="$cf_cv_system_name"
+ cf_with_cxx_binding="$cf_with_cxx_binding"
+-target="$target"
++host="$host"
+
+ EOF
+
+@@ -10995,12 +11797,11 @@
+ "include/curses.head" ) CONFIG_FILES="$CONFIG_FILES include/curses.head:include/curses.h.in" ;;
+ "include/termcap.h" ) CONFIG_FILES="$CONFIG_FILES include/termcap.h" ;;
+ "include/unctrl.h" ) CONFIG_FILES="$CONFIG_FILES include/unctrl.h" ;;
+- "misc/run_tic.sh" ) CONFIG_FILES="$CONFIG_FILES misc/run_tic.sh:misc/run_tic.in" ;;
+ "$SUB_MAKEFILES" ) CONFIG_FILES="$CONFIG_FILES $SUB_MAKEFILES" ;;
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+ "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
+- *) { { echo "$as_me:11003: error: invalid argument: $ac_config_target" >&5
++ *) { { echo "$as_me:11804: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+@@ -11087,7 +11888,6 @@
+ s,@NCURSES_PATCH@,$NCURSES_PATCH,;t t
+ s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t
+ s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t
+-s,@cf_cv_cc_bool_type@,$cf_cv_cc_bool_type,;t t
+ s,@cf_cv_builtin_bool@,$cf_cv_builtin_bool,;t t
+ s,@cf_cv_header_stdbool_h@,$cf_cv_header_stdbool_h,;t t
+ s,@cf_cv_type_of_bool@,$cf_cv_type_of_bool,;t t
+@@ -11110,11 +11910,6 @@
+ s,@ac_ct_CC@,$ac_ct_CC,;t t
+ s,@EXEEXT@,$EXEEXT,;t t
+ s,@OBJEXT@,$OBJEXT,;t t
+-s,@BUILD_CC@,$BUILD_CC,;t t
+-s,@BUILD_CFLAGS@,$BUILD_CFLAGS,;t t
+-s,@BUILD_CPPFLAGS@,$BUILD_CPPFLAGS,;t t
+-s,@BUILD_LDFLAGS@,$BUILD_LDFLAGS,;t t
+-s,@BUILD_LIBS@,$BUILD_LIBS,;t t
+ s,@CPP@,$CPP,;t t
+ s,@PROG_EXT@,$PROG_EXT,;t t
+ s,@LDCONFIG@,$LDCONFIG,;t t
+@@ -11135,18 +11930,34 @@
+ s,@MAN@,$MAN,;t t
+ s,@LINT_OPTS@,$LINT_OPTS,;t t
+ s,@LD@,$LD,;t t
++s,@ac_ct_LD@,$ac_ct_LD,;t t
+ s,@AR@,$AR,;t t
++s,@ac_ct_AR@,$ac_ct_AR,;t t
+ s,@AR_OPTS@,$AR_OPTS,;t t
+ s,@cf_cv_makeflags@,$cf_cv_makeflags,;t t
+ s,@DESTDIR@,$DESTDIR,;t t
++s,@BUILD_CC@,$BUILD_CC,;t t
++s,@BUILD_CFLAGS@,$BUILD_CFLAGS,;t t
++s,@BUILD_CPPFLAGS@,$BUILD_CPPFLAGS,;t t
++s,@BUILD_LDFLAGS@,$BUILD_LDFLAGS,;t t
++s,@BUILD_LIBS@,$BUILD_LIBS,;t t
+ s,@cf_list_models@,$cf_list_models,;t t
+ s,@LIBTOOL@,$LIBTOOL,;t t
++s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
++s,@LIB_CREATE@,$LIB_CREATE,;t t
++s,@LIB_OBJECT@,$LIB_OBJECT,;t t
++s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t
++s,@LIB_PREP@,$LIB_PREP,;t t
++s,@LIB_CLEAN@,$LIB_CLEAN,;t t
++s,@LIB_COMPILE@,$LIB_COMPILE,;t t
++s,@LIB_LINK@,$LIB_LINK,;t t
++s,@LIB_INSTALL@,$LIB_INSTALL,;t t
++s,@LIB_UNINSTALL@,$LIB_UNINSTALL,;t t
+ s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t
+ s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t
+ s,@TINFO_NAME@,$TINFO_NAME,;t t
+ s,@LIB_NAME@,$LIB_NAME,;t t
+ s,@LIB_PREFIX@,$LIB_PREFIX,;t t
+-s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t
+ 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
+@@ -11175,7 +11986,12 @@
+ s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
+ s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t
+ s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t
++s,@NEED_WCHAR_H@,$NEED_WCHAR_H,;t t
+ s,@NCURSES_MBSTATE_T@,$NCURSES_MBSTATE_T,;t t
++s,@NCURSES_WCHAR_T@,$NCURSES_WCHAR_T,;t t
++s,@NCURSES_WINT_T@,$NCURSES_WINT_T,;t t
++s,@NCURSES_OK_WCHAR_T@,$NCURSES_OK_WCHAR_T,;t t
++s,@NCURSES_OK_WINT_T@,$NCURSES_OK_WINT_T,;t t
+ s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
+ s,@ECHO_LINK@,$ECHO_LINK,;t t
+ s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+@@ -11188,6 +12004,7 @@
+ s,@CXX_AR@,$CXX_AR,;t t
+ s,@CXX_AR_OPTS@,$CXX_AR_OPTS,;t t
+ s,@CXXLIBS@,$CXXLIBS,;t t
++s,@USE_CXX_BOOL@,$USE_CXX_BOOL,;t t
+ s,@gnat_exists@,$gnat_exists,;t t
+ s,@M4_exists@,$M4_exists,;t t
+ s,@cf_ada_make@,$cf_ada_make,;t t
+@@ -11326,7 +12143,7 @@
+ esac
+
+ if test x"$ac_file" != x-; then
+- { echo "$as_me:11329: creating $ac_file" >&5
++ { echo "$as_me:12146: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+@@ -11344,7 +12161,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:11347: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:12164: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -11357,7 +12174,7 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:11360: error: cannot find input file: $f" >&5
++ { { echo "$as_me:12177: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+@@ -11423,7 +12240,7 @@
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+- test x"$ac_file" != x- && { echo "$as_me:11426: creating $ac_file" >&5
++ test x"$ac_file" != x- && { echo "$as_me:12243: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+@@ -11434,7 +12251,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:11437: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:12254: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -11447,7 +12264,7 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:11450: error: cannot find input file: $f" >&5
++ { { echo "$as_me:12267: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+@@ -11505,7 +12322,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:11508: $ac_file is unchanged" >&5
++ { echo "$as_me:12325: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+@@ -11608,8 +12425,10 @@
+ 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
+- SHARED_LIB="../lib/${cf_prefix}${cf_dir}\$(ABI_VERSION).dll"
++ SHARED_LIB="../lib/cyg${cf_dir}\$(ABI_VERSION).dll"
+ IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a"
+ LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)"
+ continue
+@@ -11624,7 +12443,7 @@
+ termlib+*) #(vi
+ ;;
+ *) #(vi
+- cf_item=`echo $LIBS_TO_MAKE |sed -e s/$LIB_NAME/$TINFO_NAME/g`
++ cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
+ LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
+ ;;
+ esac
+@@ -11710,7 +12529,7 @@
+ ldconfig="$LDCONFIG" \
+ overwrite=$WITH_OVERWRITE \
+ depend="$cf_depend" \
+- target="$target" \
++ host="$host" \
+ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+ for cf_subdir2 in $cf_subdirs lib
+ do
+diff -urNd -urNd ncurses-5.3/configure.in ncurses-5.3.20030906.orig/configure.in
+--- ncurses-5.3/configure.in Sat Sep 14 19:11:28 2002
++++ ncurses-5.3.20030906.orig/configure.in Fri Sep 12 16:42:40 2003
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++dnl Copyright (c) 1998-2002,2003 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,50 +28,29 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1995-on
+ dnl
+-dnl $Id: configure.in,v 1.274 2002/09/15 00:11:28 tom Exp $
++dnl $Id: configure.in,v 1.297 2003/08/30 22:52:21 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.274 $)
++AC_REVISION($Revision: 1.297 $)
+ AC_INIT(ncurses/base/lib_initscr.c)
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+
+ CF_SUBST_NCURSES_VERSION
++AC_ARG_WITH(abi-version,
++[ --with-abi-version=XXX override derived ABI version],
++[AC_MSG_WARN(overriding ABI version to $withval)
++ cf_cv_abi_version=$withval])
++
+ 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])
+
+-# We need a configure script only when compiling as part of GNU C library.
+-# Here we have to generate one of the files we need while compiling.
+-#
+-# The only problem is that users of the package might think they have to
+-# run configure themself and find it irritating when nothing happens.
+-#
+-# So we try here to find out whether we are called from the glibc configure
+-# or by a user.
+-#
+-dnl Check if we are a drop-in addition to glibc.
+-AC_ARG_ENABLE(add-ons, dnl
+-[ --enable-add-ons=DIR... used to check if we are a glibc add-on.],
+- [glibc_add_on=yes],
+- [glibc_add_on=])
+-
+-if test x"$glibc_add_on" = "xyes" ; then
+- rm -f $srcdir/Banner
+- # We are in glibc.
+- rm -f $srcdir/Makefile
+- cp $srcdir/Makefile.glibc $srcdir/Makefile
+- echo "ncurses `grep \"^[[ ]]*ncurses-version[[ ]]*=.*$\" \
+- $srcdir/Makefile | sed -e \
+- 's/^[[ ]]*ncurses-version[[ ]]*=[[ ]]*\([[^ ^ ]]*\)[[ ]]*$/\1/'`" > $srcdir/Banner
+- exit 0
+-fi
+-
+ ### Save the given $CFLAGS to allow user-override.
+ cf_user_CFLAGS="$CFLAGS"
+
+@@ -80,44 +59,7 @@
+
+ ### Checks for programs.
+ AC_PROG_CC
+-GCC_VERSION=none
+-if test "$GCC" = yes ; then
+- AC_MSG_CHECKING(version of gcc)
+- GCC_VERSION="`${CC} --version|head -1`"
+- AC_MSG_RESULT($GCC_VERSION)
+-fi
+-
+-# If we're cross-compiling, allow the user to override the tools and their
+-# options. The configure script is oriented toward identifying the target
+-# compiler, etc., but we need a host compiler to generate parts of the source.
+-BUILD_CC='$(CC)'
+-BUILD_CFLAGS='$(CFLAGS)'
+-BUILD_CPPFLAGS='$(CPPFLAGS)'
+-BUILD_LDFLAGS='$(LDFLAGS)'
+-BUILD_LIBS='$(LIBS)'
+-if test "$host_alias" != "$target_alias" ; then
+- AC_ARG_WITH(build-cc,
+- [ --with-build-cc=XXX if cross-compiling, the host C compiler (\$BUILD_CC)],
+- [BUILD_CC="$withval"],
+- [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)])
+- AC_ARG_WITH(build-cflags,
+- [ --with-build-cflags=XXX if cross-compiling, the host C compiler-flags],
+- [BUILD_CFLAGS="$withval"])
+- AC_ARG_WITH(build-cppflags,
+- [ --with-build-cppflags=XXX if cross-compiling, the host C preprocessor-flags],
+- [BUILD_CPPFLAGS="$withval"])
+- AC_ARG_WITH(build-ldflags,
+- [ --with-build-ldflags=XXX if cross-compiling, the host linker-flags],
+- [BUILD_LDFLAGS="$withval"])
+- AC_ARG_WITH(build-libs,
+- [ --with-build-libs=XXX if cross-compiling, the host libraries],
+- [BUILD_LIBS="$withval"])
+-fi
+-AC_SUBST(BUILD_CC)
+-AC_SUBST(BUILD_CFLAGS)
+-AC_SUBST(BUILD_CPPFLAGS)
+-AC_SUBST(BUILD_LDFLAGS)
+-AC_SUBST(BUILD_LIBS)
++CF_GCC_VERSION
+
+ AC_PROG_CPP
+ AC_PROG_GCC_TRADITIONAL
+@@ -148,26 +90,31 @@
+ CXX=""
+ GXX=""
+ else
++ # with autoconf 2.13, we can change the error to a warning:
+ pushdef([AC_MSG_ERROR],
+- [AC_MSG_RESULT([You don't have any C++ compiler, too bad]); dnl
++ [AC_MSG_RESULT(no)
++ AC_MSG_WARN([You don't have any C++ compiler, too bad])
+ 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++.
++ if test "$CXX" = "g++" ; then
++ AC_PATH_PROG(CXX,g++)
++ fi
++ if test "$CXX" = "g++" ; then
++ AC_MSG_WARN(ignoring hardcoded g++)
++ cf_with_cxx=no; CXX=""; GXX="";
++ fi
+ fi
+
+-GXX_VERSION=none
+-if test "$GXX" = yes; then
+- AC_MSG_CHECKING(version of g++)
+- GXX_VERSION="`${CXX-g++} --version|head -1`"
+- AC_MSG_RESULT($GXX_VERSION)
+- case $GXX_VERSION in
+- 1*|2.[[0-6]]*)
+- GXX=""; CXX=""; ac_cv_prog_gxx=no
+- cf_cxx_library=no
+- AC_MSG_WARN(templates do not work)
+- ;;
+- esac
+-fi
++CF_GXX_VERSION
++case $GXX_VERSION in
++1*|2.[[0-6]]*)
++ GXX=""; CXX=""; ac_cv_prog_gxx=no
++ cf_cxx_library=no
++ AC_MSG_WARN(templates do not work)
++ ;;
++esac
+
+ AC_MSG_CHECKING(if you want to build C++ binding and demo)
+ AC_ARG_WITH(cxx-binding,
+@@ -217,8 +164,8 @@
+ AC_SUBST(LINT_OPTS)
+
+ dnl These are standard among *NIX systems, but not when cross-compiling
+-CF_SUBST(loader,LD,ld)
+-CF_SUBST(archiver,AR,ar)
++AC_CHECK_TOOL(LD, ld, ld)
++AC_CHECK_TOOL(AR, ar, ar)
+ CF_SUBST(archiver options,AR_OPTS,rv)
+
+ CF_MAKEFLAGS
+@@ -239,6 +186,40 @@
+ AC_SUBST(DESTDIR)
+
+ ###############################################################################
++CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:)
++# If we're cross-compiling, allow the user to override the tools and their
++# options. The configure script is oriented toward identifying the host
++# compiler, etc., but we need a build compiler to generate parts of the source.
++: ${BUILD_CC:='$(CC)'}
++: ${BUILD_CFLAGS:='$(CFLAGS)'}
++: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
++: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
++: ${BUILD_LIBS:='$(LIBS)'}
++if test "$cross_compiling" = yes ; then
++ AC_ARG_WITH(build-cc,
++ [ --with-build-cc=XXX the build C compiler (\$BUILD_CC)],
++ [BUILD_CC="$withval"],
++ [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)])
++ AC_ARG_WITH(build-cflags,
++ [ --with-build-cflags=XXX the build C compiler-flags],
++ [BUILD_CFLAGS="$withval"])
++ AC_ARG_WITH(build-cppflags,
++ [ --with-build-cppflags=XXX the build C preprocessor-flags],
++ [BUILD_CPPFLAGS="$withval"])
++ AC_ARG_WITH(build-ldflags,
++ [ --with-build-ldflags=XXX the build linker-flags],
++ [BUILD_LDFLAGS="$withval"])
++ AC_ARG_WITH(build-libs,
++ [ --with-build-libs=XXX the build libraries],
++ [BUILD_LIBS="$withval"])
++fi
++AC_SUBST(BUILD_CC)
++AC_SUBST(BUILD_CFLAGS)
++AC_SUBST(BUILD_CPPFLAGS)
++AC_SUBST(BUILD_LDFLAGS)
++AC_SUBST(BUILD_LIBS)
++
++###############################################################################
+ CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
+
+ ### Options to allow the user to specify the set of libraries which are used.
+@@ -247,19 +228,12 @@
+ cf_list_models=""
+ AC_SUBST(cf_list_models)dnl the complete list of models ("normal debug")
+
+-AC_MSG_CHECKING(if you want to build libraries with libtool)
+-AC_ARG_WITH(libtool,
+- [ --with-libtool generate libraries with libtool],
+- [with_libtool=$withval],
+- [with_libtool=no])
+-AC_MSG_RESULT($with_libtool)
+-if test "$with_libtool" = "yes"; then
+- cf_list_models="$cf_list_models libtool"
+- test -z "$LIBTOOL" && LIBTOOL=libtool
++CF_WITH_LIBTOOL
++if test "$with_libtool" != "no" ; then
++
++cf_list_models="$cf_list_models libtool"
++
+ else
+- LIBTOOL=""
+-fi
+-AC_SUBST(LIBTOOL)
+
+ AC_MSG_CHECKING(if you want to build shared libraries)
+ AC_ARG_WITH(shared,
+@@ -293,19 +267,21 @@
+ AC_MSG_RESULT($with_profile)
+ test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
+
++fi
++
+ ###############################################################################
+
+ AC_MSG_CHECKING(for specified models)
+ test -z "$cf_list_models" && cf_list_models=normal
+ dnl If we use libtool to generate libraries, then it must be the only
+ dnl specified model.
+-test "$with_libtool" = "yes" && cf_list_models=libtool
++test "$with_libtool" != "no" && cf_list_models=libtool
+ AC_MSG_RESULT($cf_list_models)
+
+ ### Use the first model as the default, and save its suffix for use in building
+ ### up test-applications.
+ AC_MSG_CHECKING(for default model)
+-DFT_LWR_MODEL=`echo $cf_list_models | $AWK '{print $1}'`
++DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
+ AC_MSG_RESULT($DFT_LWR_MODEL)
+
+ CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
+@@ -337,25 +313,8 @@
+ AC_MSG_RESULT($with_termlib)
+
+ ### Checks for special libraries, must be done up-front.
+-AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
+-AC_ARG_WITH(dbmalloc,
+- [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
+- [with_dbmalloc=$withval],
+- [with_dbmalloc=no])
+-AC_MSG_RESULT($with_dbmalloc)
+-if test "$with_dbmalloc" = yes ; then
+- AC_CHECK_LIB(dbmalloc,debug_malloc)
+-fi
+-
+-AC_MSG_CHECKING(if you want to link with dmalloc for testing)
+-AC_ARG_WITH(dmalloc,
+- [ --with-dmalloc test: use Gray Watson's dmalloc library],
+- [with_dmalloc=$withval],
+- [with_dmalloc=no])
+-AC_MSG_RESULT($with_dmalloc)
+-if test "$with_dmalloc" = yes ; then
+- AC_CHECK_LIB(dmalloc,dmalloc_debug)
+-fi
++CF_WITH_DBMALLOC
++CF_WITH_DMALLOC
+
+ SHLIB_LIST=""
+ AC_MSG_CHECKING(if you want to link with the gpm mouse library)
+@@ -373,6 +332,8 @@
+ ],AC_MSG_WARN(Cannot link with gpm library - read the FAQ))
+ fi
+
++CF_WITH_SYSMOUSE
++
+ dnl Not all ports of gcc support the -g option
+
+ if test X"$CC_G_OPT" = X"" ; then
+@@ -458,7 +419,7 @@
+ [with_fallback=$withval],
+ [with_fallback=])
+ AC_MSG_RESULT($with_fallback)
+-FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
++FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+ AC_SUBST(FALLBACK_LIST)
+
+ MAKE_TERMINFO=
+@@ -522,7 +483,7 @@
+
+ if test "$with_termcap" != "yes" ; then
+ if test "$use_database" = no ; then
+- if test -z $with_fallback ; then
++ if test -z "$with_fallback" ; then
+ AC_ERROR(You have disabled the database w/o specifying fallbacks)
+ fi
+ fi
+@@ -604,7 +565,7 @@
+ if test "$with_broken_linker" = yes ; then
+ AC_DEFINE(BROKEN_LINKER)
+ BROKEN_LINKER=1
+-elif test $DFT_LWR_MODEL = shared ; then
++elif test "$DFT_LWR_MODEL" = shared ; then
+ case $cf_cv_system_name in #(vi
+ cygwin*)
+ AC_DEFINE(BROKEN_LINKER)
+@@ -669,6 +630,7 @@
+ AC_DEFINE(HAVE_CURSES_VERSION)
+ AC_DEFINE(HAVE_HAS_KEY)
+ AC_DEFINE(HAVE_RESIZETERM)
++ AC_DEFINE(HAVE_RESIZE_TERM)
+ AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
+ AC_DEFINE(HAVE_WRESIZE)
+ AC_DEFINE(NCURSES_EXT_FUNCS)
+@@ -807,7 +769,19 @@
+ ### 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_GNU_SOURCE
++
++# use these variables to work around a defect in gcc's fixincludes.
++NCURSES_OK_WCHAR_T=
++NCURSES_OK_WINT_T=
++
+ AC_MSG_CHECKING(if you want experimental wide-character code)
+ AC_ARG_ENABLE(widec,
+ [ --enable-widec compile with experimental wide-char/UTF-8 code],
+@@ -817,24 +791,31 @@
+ if test "$with_widec" = yes ; then
+ LIB_SUFFIX="w${LIB_SUFFIX}"
+ AC_DEFINE(USE_WIDEC_SUPPORT)
+- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
++ CF_PREDEFINE(_XOPEN_SOURCE,500)
++ CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
+ # with_overwrite=no
+ NCURSES_CH_T=cchar_t
+- AC_CHECK_FUNC(putwc)
+-if test "$ac_cv_func_putwc" != yes ; then
+- CF_LIBUTF8
+- if test "$cf_cv_libutf8" = yes ; then
+- NCURSES_LIBUTF8=1
+- fi
+-fi
+- CF_MBSTATE_T
+- if test $cf_cv_mbstate_t = yes ; then
+- NCURSES_MBSTATE_T=1
++ AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb)
++ if test "$ac_cv_func_putwc" != yes ; then
++ CF_LIBUTF8
++ if test "$cf_cv_libutf8" = yes ; then
++ NCURSES_LIBUTF8=1
++ fi
+ fi
++ CF_WCHAR_TYPE(mbstate_t, NCURSES_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)
+ fi
+ AC_SUBST(NCURSES_CH_T)
+ AC_SUBST(NCURSES_LIBUTF8)
++
++AC_SUBST(NEED_WCHAR_H)
+ AC_SUBST(NCURSES_MBSTATE_T)
++AC_SUBST(NCURSES_WCHAR_T)
++AC_SUBST(NCURSES_WINT_T)
++
++AC_SUBST(NCURSES_OK_WCHAR_T)
++AC_SUBST(NCURSES_OK_WINT_T)
+
+ AC_MSG_CHECKING(for terminal capabilities file)
+ AC_ARG_WITH(caps,
+@@ -922,7 +903,6 @@
+ AC_SUBST(MATH_LIB)
+
+ ### Checks for header files.
+-CF_GNU_SOURCE
+ AC_STDC_HEADERS
+ AC_HEADER_DIRENT
+ AC_HEADER_TIME
+@@ -1027,8 +1007,10 @@
+ CF_STRIP_G_OPT(CXXFLAGS)
+ fi
+
+-dnl Check for C++ compiler characteristics (and ensure that it's there!)
+-CF_BOOL_DECL(cf_cv_cc_bool_type)
++# Just in case, check if the C compiler has a bool type.
++CF_BOOL_DECL(cv_cv_cc_bool_type)
++
++# Check for C++ compiler characteristics (and ensure that it's there!)
+ if test -n "$CXX" ; then
+ AC_LANG_CPLUSPLUS
+ CF_STDCPP_LIBRARY
+@@ -1105,6 +1087,26 @@
+ fi
+ AC_SUBST(CXXLIBS)
+
++# If the C compiler did not declare bool, and we did not determine that the C++
++# compiler does not declare bool, turn on an ifdef in curses.h that makes the
++# ncurses library use the same type as C++ bool. Note that this allows one to
++# specify the type of bool in a configure-script option and postpone
++# integration with the C++ compiler provided that the types are compatible.
++USE_CXX_BOOL=1
++if test $cv_cv_cc_bool_type = 1
++then
++ # oops: C has a bool. Unlikely, but C++ could differ.
++ USE_CXX_BOOL=0
++elif test $cf_cv_builtin_bool = 0
++then
++ # C++ has no bool
++ USE_CXX_BOOL=0
++else
++ # this is the normal case
++ USE_CXX_BOOL='!defined(__cplusplus)'
++fi
++AC_SUBST(USE_CXX_BOOL)
++
+ CF_HELP_MESSAGE(Ada95 Binding Options:)
+
+ dnl Check for availability of GNU Ada Translator (GNAT).
+@@ -1169,22 +1171,6 @@
+ fi
+ fi
+
+-### It's not possible to appease gcc 2.6.3's conversion-warnings if we're
+-### using a 'char' for bools. gcc 2.7.0's conversion-warnings are broken too
+-### badly to consider using for development purposes, but 2.5.8 is okay.
+-if test -n "$with_warnings"; then
+- case $GCC_VERSION in
+- 2.6.3)
+- if test "$cf_cv_type_of_bool" != "char"; then
+- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
+- fi
+- ;;
+- 2.5*)
+- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
+- ;;
+- esac
+-fi
+-
+ ### Construct the library-subsets, if any, from this set of keywords:
+ ### none, base, ext_funcs, termlib.
+ AC_MSG_CHECKING(for library subsets)
+@@ -1236,17 +1222,21 @@
+ AC_MSG_RESULT($DFT_OBJ_SUBDIR)
+
+ # libtool thinks it can make c++ shared libraries (perhaps only g++)
++if test "$cf_with_cxx" = yes ; then
+ AC_MSG_CHECKING(c++ library-dependency suffix)
+-if test "$with_libtool" = "yes"; then
++if test "$with_libtool" != "no"; then
+ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
+ else
+ CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library
+ fi
+ AC_MSG_RESULT($CXX_LIB_SUFFIX)
+ AC_SUBST(CXX_LIB_SUFFIX)
++fi
+
+ TINFO_LIST="$SHLIB_LIST"
+-test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
++if test "$with_libtool" = no ; then
++ test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
++fi
+
+ AC_MSG_CHECKING(where we will install curses.h)
+ test "$with_overwrite" = no && \
+@@ -1280,6 +1270,9 @@
+ PROG_DEPS="$TEST_DEPS"
+ PROG_ARGS="$TEST_ARGS"
+
++### predefined stuff for the test programs
++AC_DEFINE(HAVE_SLK_COLOR)
++
+ ### Construct the list of subdirectories for which we'll customize makefiles
+ ### with the appropriate compile-rules.
+
+@@ -1289,15 +1282,15 @@
+ AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
+
+ ### Now that we're done running tests, add the compiler-warnings, if any
+-CFLAGS="$CFLAGS $EXTRA_CFLAGS"
++CF_ADD_CFLAGS($EXTRA_CFLAGS)
+
+ ################################################################################
++test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+ AC_OUTPUT( \
+ include/MKterm.h.awk \
+ include/curses.head:include/curses.h.in \
+ include/termcap.h \
+ include/unctrl.h \
+- misc/run_tic.sh:misc/run_tic.in \
+ $SUB_MAKEFILES \
+ Makefile,[
+ CF_LIB_RULES
+@@ -1329,7 +1322,7 @@
+ cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
+ cf_cv_system_name="$cf_cv_system_name"
+ cf_with_cxx_binding="$cf_with_cxx_binding"
+-target="$target"
++host="$host"
+
+ ],cat)dnl
+ ${MAKE-make} preinstall
+diff -urNd -urNd ncurses-5.3/dist.mk ncurses-5.3.20030906.orig/dist.mk
+--- ncurses-5.3/dist.mk Sat Oct 12 18:27:36 2002
++++ ncurses-5.3.20030906.orig/dist.mk Fri Sep 12 16:42:59 2003
+@@ -1,4 +1,4 @@
+-# $Id: dist.mk,v 1.327 2002/10/12 23:27:36 tom Exp $
++# $Id: dist.mk,v 1.376 2003/09/06 20:16:49 tom Exp $
+ # Makefile for creating ncurses distributions.
+ #
+ # This only needs to be used directly as a makefile by developers, but
+@@ -10,7 +10,7 @@
+ # These define the major/minor/patch versions of ncurses.
+ NCURSES_MAJOR = 5
+ NCURSES_MINOR = 3
+-NCURSES_PATCH = 20021012
++NCURSES_PATCH = 20030906
+
+ # We don't append the patch to the version, since this only applies to releases
+ VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
+@@ -68,7 +68,7 @@
+ @echo 's/<\/B>/<\/STRONG>/g' >> subst.tmp
+ @echo 's/<I>/<EM>/g' >> subst.tmp
+ @echo 's/<\/I>/<\/EM>/g' >> subst.tmp
+- @sort < subst.tmp | uniq > subst.sed
++ @misc/csort < subst.tmp | uniq > subst.sed
+ @echo '/<\/TITLE>/a\' >> subst.sed
+ @echo '<link rev=made href="mailto:bug-ncurses@gnu.org">\' >> subst.sed
+ @echo '<meta http-equiv="Content-Type" content="text\/html; charset=iso-8859-1">' >> subst.sed
+@@ -97,7 +97,7 @@
+ @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp
+ @find ./doc/html/man -type f -print >> MANIFEST.tmp
+ @chmod u+w MANIFEST
+- @sort -u < MANIFEST.tmp > MANIFEST
++ @misc/csort -u < MANIFEST.tmp > MANIFEST
+ @rm -f MANIFEST.tmp
+
+ #
+@@ -110,7 +110,7 @@
+ (cd ./Ada95/gen ; make html) ;\
+ sed -e "\%./doc/html/ada/%d" < MANIFEST > MANIFEST.tmp ;\
+ find ./doc/html/ada -type f -print >> MANIFEST.tmp ;\
+- sort -u < MANIFEST.tmp > MANIFEST ;\
++ misc/csort -u < MANIFEST.tmp > MANIFEST ;\
+ rm -f MANIFEST.tmp ;\
+ fi
+
+@@ -128,7 +128,7 @@
+ MANIFEST:
+ -rm -f $@
+ touch $@
+- find . -type f -print |sort | fgrep -v .lsm |fgrep -v .spec >$@
++ find . -type f -print |misc/csort | fgrep -v .lsm |fgrep -v .spec >$@
+
+ TAGS:
+ etags */*.[ch]
+diff -urNd -urNd ncurses-5.3/doc/html/announce.html ncurses-5.3.20030906.orig/doc/html/announce.html
+--- ncurses-5.3/doc/html/announce.html Sat Oct 12 18:35:53 2002
++++ ncurses-5.3.20030906.orig/doc/html/announce.html Tue May 13 20:08:22 2003
+@@ -1,11 +1,12 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+ <!--
+- $Id: announce.html,v 1.41 2002/10/12 23:35:53 tom Exp $
++ $Id: announce.html,v 1.42 2002/10/19 21:47:00 tom Exp $
+ -->
+ <HTML>
+ <HEAD>
+-<TITLE>Announcing ncurses 5.3 Pre-Release</TITLE>
++<TITLE>Announcing ncurses 5.3</TITLE>
+ <link rev=made href="mailto:bug-ncurses@gnu.org">
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </HEAD>
+ <BODY>
+
+@@ -35,9 +36,9 @@
+
+ The ncurses distribution is available via anonymous FTP at
+ the GNU distribution site
+-<A HREF="ftp://ftp.gnu.org/pub/gnu/ncurses">ftp://ftp.gnu.org/pub/gnu/ncurses</A>.
++<A HREF="ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A>&nbsp;.
+ <br>It is also available at
+-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
++<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
+
+ <H1>Release Notes</H1>
+
+@@ -317,61 +318,61 @@
+ <DT> cdk
+ <DD> Curses Development Kit
+ <br>
+-<A HREF="http://invisible-island.net/cdk/cdk.html">http://invisible-island.net/cdk</A>.
++<A HREF="http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</A>
+ <br>
+-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
++<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a>
+ <DT> ded
+ <DD> directory-editor
+ <br>
+-<A HREF="http://invisible-island.net/ded/ded.html">http://invisible-island.net/ded</A>.
++<A HREF="http://invisible-island.net/ded/">http://invisible-island.net/ded/</A>
+ <DT> dialog
+ <DD> the underlying application used in Slackware's setup, and the basis
+ for similar applications on GNU/Linux.
+ <br>
+-<A HREF="http://invisible-island.net/dialog/dialog.html">http://invisible-island.net/dialog</A>.
++<A HREF="http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</A>
+ <DT> lynx
+ <DD> the character-screen WWW browser
+ <br>
+-<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release</A>.
++<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release/</A>
+ <DT> Midnight Commander
+ <DD> file manager
+ <br>
+-<A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
++<A HREF="http://www.ibiblio.org/mc/">http://www.ibiblio.org/mc/</A>
+ <DT> mutt
+ <DD> mail utility
+ <br>
+-<A HREF="http://www.mutt.org">http://www.mutt.org</A>.
++<A HREF="http://www.mutt.org/">http://www.mutt.org/</A>
+ <DT> ncftp
+ <DD> file-transfer utility
+ <br>
+-<A HREF="http://www.ncftp.com">http://www.ncftp.com</A>.
++<A HREF="http://www.ncftp.com/">http://www.ncftp.com/</A>
+ <DT> nvi
+ <DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
+ <br>
+-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>.
++<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>
+ <DT> tin
+ <DD> newsreader, supporting color, MIME
+ <br>
+-<A HREF="http://www.tin.org">http://www.tin.org</A>.
++<A HREF="http://www.tin.org/">http://www.tin.org/</A>
+ <DT> taper
+ <DD> tape archive utility
+ <br>
+-<A HREF="http://members.iinet.net.au/~yusuf/taper/">http://members.iinet.net.au/~yusuf/taper/</A>.
++<A HREF="http://taper.e-survey.net.au/">http://taper.e-survey.net.au/</A>
+ <DT> vh-1.6
+ <DD> Volks-Hypertext browser for the Jargon File
+ <br>
+-<A HREF="http://www.bg.debian.org/Packages/unstable/text/vh.html">http://www.bg.debian.org/Packages/unstable/text/vh.html</A>.
++<A HREF="http://www.debian.org/Packages/unstable/text/vh.html">http://www.debian.org/Packages/unstable/text/vh.html</A>
+ </DL>
+ as well as some that use ncurses for the terminfo support alone:
+ <DL>
+ <DT> minicom
+ <DD> terminal emulator
+ <br>
+-<A HREF="http://www.pp.clinet.fi/~walker/minicom.html">http://www.pp.clinet.fi/~walker/minicom.html</A>.
++<A HREF="http://www.netsonic.fi/~walker/minicom.html">http://www.netsonic.fi/~walker/minicom.html</A>
+ <DT> vile
+ <DD> vi-like-emacs
+ <br>
+-<A HREF="http://invisible-island.net/vile/vile.html">http://invisible-island.net/vile</A>.
++<A HREF="http://invisible-island.net/vile/">http://invisible-island.net/vile/</A>
+ </DL>
+ <P>
+
+@@ -382,7 +383,7 @@
+
+ The original developers of ncurses are <A
+ HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
+-<A HREF="http://www.ccil.org/~esr/home.html">Eric S. Raymond</A>.
++<A HREF="http://www.tuxedo.org/~esr/">Eric S. Raymond</A>.
+ Ongoing work is being done by
+ <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
+ and
+@@ -404,7 +405,7 @@
+ testing of this package.<P>
+
+ Beta versions of ncurses and patches to the current release are made available at
+-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
++<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
+
+ <H2>Future Plans</H2>
+ <UL>
+@@ -418,12 +419,12 @@
+
+ The distribution includes and uses a version of the terminfo-format
+ terminal description file maintained by Eric Raymond.
+-<A HREF="http://earthspace.net/~esr/terminfo">http://earthspace.net/~esr/terminfo</A>.<P>
++<A HREF="http://www.tuxedo.org/~esr/terminfo/">http://www.tuxedo.org/~esr/terminfo/</A>&nbsp;.<P>
+
+ You can find lots of information on terminal-related topics
+ not covered in the terminfo file at
+ <A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
+-archive</A>.
++archive</A>&nbsp;.
+ </BODY>
+ </HTML>
+ <!--
+diff -urNd -urNd ncurses-5.3/doc/html/man/captoinfo.1m.html ncurses-5.3.20030906.orig/doc/html/man/captoinfo.1m.html
+--- ncurses-5.3/doc/html/man/captoinfo.1m.html Sat Jun 22 16:25:15 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/captoinfo.1m.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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: captoinfo.1m,v 1.16 2000/08/13 01:56:49 tom Exp @
++ * @Id: captoinfo.1m,v 1.17 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -192,7 +192,7 @@
+ mode. You can use other <EM>tic</EM> options such as <STRONG>-f</STRONG> and <STRONG>-x</STRONG>.
+
+ The trace option isn't identical to SVr4's. Under SVr4,
+- instead of following the -v with a trace level n, you
++ instead of following the <STRONG>-v</STRONG> with a trace level n, you
+ repeat it n times.
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_addch.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_addch.3x.html
+--- ncurses-5.3/doc/html/man/curs_addch.3x.html Sat Aug 31 16:59:20 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_addch.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_addch.3x,v 1.20 2002/08/10 22:12:36 tom Exp @
++ * @Id: curs_addch.3x,v 1.21 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -77,7 +77,7 @@
+ sor one character left; at the left edge of a window it
+ does nothing. Newline does a <STRONG>clrtoeol</STRONG>, then moves the
+ cursor to the window left margin on the next line,
+- scrolling the window if on the last line). Tabs are con-
++ scrolling the window if on the last line. Tabs are con-
+ sidered to be at every eighth column. The tab interval
+ may be altered by setting the <STRONG>TABSIZE</STRONG> variable.
+
+@@ -91,7 +91,7 @@
+ passed to <STRONG>addch</STRONG> or related functions by logical-ORing them
+ into the character. (Thus, text, including attributes,
+ can be copied from one place to another using <STRONG>inch</STRONG> and
+- <STRONG>addch</STRONG>.). See the <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> page for values of prede-
++ <STRONG>addch</STRONG>.) See the <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> page for values of prede-
+ fined video attribute constants that can be usefully OR'ed
+ into characters.
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_beep.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_beep.3x.html
+--- ncurses-5.3/doc/html/man/curs_beep.3x.html Sat Jun 22 16:25:17 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_beep.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998 Free Software Foundation, Inc. *
++ * Copyright (c) 1998,2003 Free 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_beep.3x,v 1.7 1998/03/11 21:12:53 juergen Exp @
++ * @Id: curs_beep.3x,v 1.8 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_deleteln.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_deleteln.3x.html
+--- ncurses-5.3/doc/html/man/curs_deleteln.3x.html Sat Jun 22 16:25:19 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_deleteln.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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_deleteln.3x,v 1.7 2000/11/11 20:43:20 Bernhard.Rosenkraenzer Exp @
++ * @Id: curs_deleteln.3x,v 1.8 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -73,7 +73,7 @@
+ and move the remaining lines up. The bottom <EM>n</EM> lines are
+ cleared. The current cursor position remains the same.
+
+- The <STRONG>insertln</STRONG> and <STRONG>winsertln</STRONG> routines, insert a blank line
++ The <STRONG>insertln</STRONG> and <STRONG>winsertln</STRONG> routines insert a blank line
+ above the current line and the bottom line is lost.
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_extend.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_extend.3x.html
+--- ncurses-5.3/doc/html/man/curs_extend.3x.html Sat Jun 22 16:25:19 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_extend.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2002,2003 Free 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 @@
+ * authorization. *
+ ****************************************************************************
+ * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1999
+- * @Id: curs_extend.3x,v 1.9 2002/02/16 22:39:04 tom Exp @
++ * @Id: curs_extend.3x,v 1.11 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -70,10 +70,10 @@
+ standard names which may be compiled into the terminfo
+ description, i.e., via the terminfo or termcap interfaces.
+ Normally these names are available for use, since the
+- essential descision is made by using the <STRONG>-x</STRONG> option of <EM>tic</EM>
++ essential decision is made by using the <STRONG>-x</STRONG> option of <EM>tic</EM>
+ to compile extended terminal definitions. However you can
+ disable this feature to ensure compatiblity with other
+- implementations of curses
++ implementations of curses.
+
+
+ </PRE>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_get_wch.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_get_wch.3x.html
+--- ncurses-5.3/doc/html/man/curs_get_wch.3x.html Sat Jun 22 16:25:19 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_get_wch.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2002,2003 Free 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.3 2002/05/18 21:48:53 tom Exp @
++ * @Id: curs_get_wch.3x,v 1.5 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -52,10 +52,10 @@
+ <H2>SYNOPSIS</H2><PRE>
+ <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+- <STRONG>int</STRONG> <STRONG>get_wch(win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+- <STRONG>int</STRONG> <STRONG>wget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+- <STRONG>int</STRONG> <STRONG>mvget_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+- <STRONG>int</STRONG> <STRONG>mvwget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
++ <STRONG>int</STRONG> <STRONG>get_wch(wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
++ <STRONG>int</STRONG> <STRONG>wget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
++ <STRONG>int</STRONG> <STRONG>mvget_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
++ <STRONG>int</STRONG> <STRONG>mvwget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>unget_wch(const</STRONG> <STRONG>wchar_t</STRONG> <EM>wch</EM><STRONG>);</STRONG>
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_getcchar.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_getcchar.3x.html
+--- ncurses-5.3/doc/html/man/curs_getcchar.3x.html Sat Jun 22 16:25:20 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_getcchar.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2002,2003 Free 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.6 2002/03/24 01:08:55 tom Exp @
++ * @Id: curs_getcchar.3x,v 1.7 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_getch.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_getch.3x.html
+--- ncurses-5.3/doc/html/man/curs_getch.3x.html Sat Jun 22 16:25:20 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_getch.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.21 2002/03/17 14:36:21 tom Exp @
++ * @Id: curs_getch.3x,v 1.22 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -89,7 +89,7 @@
+ token for that function key is returned instead of the raw
+ characters. Possible function keys are defined in
+ <STRONG>&lt;curses.h&gt;</STRONG> as macros with values outside the range of
+- 8-bit characters whose names begin with <STRONG>KEY_.</STRONG> Thus, a
++ 8-bit characters whose names begin with <STRONG>KEY_</STRONG>. Thus, a
+ variable intended to hold the return value of a function
+ key must be of short size or larger.
+
+@@ -114,103 +114,103 @@
+ that not all of these are necessarily supported on any
+ particular terminal.
+
+- <EM>Name</EM> <EM>Key</EM> <EM>name</EM>
++ <EM>Name</EM> <EM>Key</EM> <EM>name</EM>
+
+- KEY_BREAK Break key
+- KEY_DOWN The four arrow keys ...
+- KEY_UP
+- KEY_LEFT
+- KEY_RIGHT
+- KEY_HOME Home key (upward+left arrow)
+- KEY_BACKSPACE Backspace
+- KEY_F0 Function keys; space for 64 keys
+- is reserved.
+- KEY_F(<EM>n</EM>) For 0 &lt;= <EM>n</EM> &lt;= 63
+- KEY_DL Delete line
+- KEY_IL Insert line
+- KEY_DC Delete character
+- KEY_IC Insert char or enter insert mode
+- KEY_EIC Exit insert char mode
+- KEY_CLEAR Clear screen
+- KEY_EOS Clear to end of screen
+- KEY_EOL Clear to end of line
+- KEY_SF Scroll 1 line forward
+- KEY_SR Scroll 1 line backward (reverse)
+- KEY_NPAGE Next page
+- KEY_PPAGE Previous page
+- KEY_STAB Set tab
+- KEY_CTAB Clear tab
+- KEY_CATAB Clear all tabs
+- KEY_ENTER Enter or send
+- KEY_SRESET Soft (partial) reset
+- KEY_RESET Reset or hard reset
+- KEY_PRINT Print or copy
+- KEY_LL Home down or bottom (lower left).
+- KEY_A1 Upper left of keypad
+- KEY_A3 Upper right of keypad
+- KEY_B2 Center of keypad
+- KEY_C1 Lower left of keypad
+- KEY_C3 Lower right of keypad
+- KEY_BTAB Back tab key
+- KEY_BEG Beg(inning) key
+- KEY_CANCEL Cancel key
++ KEY_BREAK Break key
++ KEY_DOWN The four arrow keys ...
++ KEY_UP
++ KEY_LEFT
++ KEY_RIGHT
++ KEY_HOME Home key (upward+left arrow)
++ KEY_BACKSPACE Backspace
++ KEY_F0 Function keys; space for 64 keys
++ is reserved.
++ KEY_F(<EM>n</EM>) For 0 &lt;= <EM>n</EM> &lt;= 63
++ KEY_DL Delete line
++ KEY_IL Insert line
++ KEY_DC Delete character
++ KEY_IC Insert char or enter insert mode
++ KEY_EIC Exit insert char mode
++ KEY_CLEAR Clear screen
++ KEY_EOS Clear to end of screen
++ KEY_EOL Clear to end of line
++ KEY_SF Scroll 1 line forward
++ KEY_SR Scroll 1 line backward (reverse)
++ KEY_NPAGE Next page
++ KEY_PPAGE Previous page
++ KEY_STAB Set tab
++ KEY_CTAB Clear tab
++ KEY_CATAB Clear all tabs
++ KEY_ENTER Enter or send
++ KEY_SRESET Soft (partial) reset
++ KEY_RESET Reset or hard reset
++ KEY_PRINT Print or copy
++ KEY_LL Home down or bottom (lower left)
++ KEY_A1 Upper left of keypad
++ KEY_A3 Upper right of keypad
++ KEY_B2 Center of keypad
++ KEY_C1 Lower left of keypad
++ KEY_C3 Lower right of keypad
++ KEY_BTAB Back tab key
++ KEY_BEG Beg(inning) key
++ KEY_CANCEL Cancel key
+
+- KEY_CLOSE Close key
+- KEY_COMMAND Cmd (command) key
+- KEY_COPY Copy key
+- KEY_CREATE Create key
+- KEY_END End key
+- KEY_EXIT Exit key
+- KEY_FIND Find key
+- KEY_HELP Help key
+- KEY_MARK Mark key
+- KEY_MESSAGE Message key
+- KEY_MOUSE Mouse event read
+- KEY_MOVE Move key
+- KEY_NEXT Next object key
+- KEY_OPEN Open key
+- KEY_OPTIONS Options key
+- KEY_PREVIOUS Previous object key
+- KEY_REDO Redo key
+- KEY_REFERENCE Ref(erence) key
+- KEY_REFRESH Refresh key
+- KEY_REPLACE Replace key
+- KEY_RESIZE Screen resized
+- KEY_RESTART Restart key
+- KEY_RESUME Resume key
+- KEY_SAVE Save key
+- KEY_SBEG Shifted beginning key
+- KEY_SCANCEL Shifted cancel key
+- KEY_SCOMMAND Shifted command key
+- KEY_SCOPY Shifted copy key
+- KEY_SCREATE Shifted create key
+- KEY_SDC Shifted delete char key
+- KEY_SDL Shifted delete line key
+- KEY_SELECT Select key
+- KEY_SEND Shifted end key
+- KEY_SEOL Shifted clear line key
+- KEY_SEXIT Shifted exit key
+- KEY_SFIND Shifted find key
+- KEY_SHELP Shifted help key
+- KEY_SHOME Shifted home key
+- KEY_SIC Shifted input key
+- KEY_SLEFT Shifted left arrow key
+- KEY_SMESSAGE Shifted message key
+- KEY_SMOVE Shifted move key
+- KEY_SNEXT Shifted next key
+- KEY_SOPTIONS Shifted options key
+- KEY_SPREVIOUS Shifted prev key
+- KEY_SPRINT Shifted print key
+- KEY_SREDO Shifted redo key
+- KEY_SREPLACE Shifted replace key
+- KEY_SRIGHT Shifted right arrow
+- KEY_SRSUME Shifted resume key
+- KEY_SSAVE Shifted save key
+- KEY_SSUSPEND Shifted suspend key
+- KEY_SUNDO Shifted undo key
++ KEY_CLOSE Close key
++ KEY_COMMAND Cmd (command) key
++ KEY_COPY Copy key
++ KEY_CREATE Create key
++ KEY_END End key
++ KEY_EXIT Exit key
++ KEY_FIND Find key
++ KEY_HELP Help key
++ KEY_MARK Mark key
++ KEY_MESSAGE Message key
++ KEY_MOUSE Mouse event read
++ KEY_MOVE Move key
++ KEY_NEXT Next object key
++ KEY_OPEN Open key
++ KEY_OPTIONS Options key
++ KEY_PREVIOUS Previous object key
++ KEY_REDO Redo key
++ KEY_REFERENCE Ref(erence) key
++ KEY_REFRESH Refresh key
++ KEY_REPLACE Replace key
++ KEY_RESIZE Screen resized
++ KEY_RESTART Restart key
++ KEY_RESUME Resume key
++ KEY_SAVE Save key
++ KEY_SBEG Shifted beginning key
++ KEY_SCANCEL Shifted cancel key
++ KEY_SCOMMAND Shifted command key
++ KEY_SCOPY Shifted copy key
++ KEY_SCREATE Shifted create key
++ KEY_SDC Shifted delete char key
++ KEY_SDL Shifted delete line key
++ KEY_SELECT Select key
++ KEY_SEND Shifted end key
++ KEY_SEOL Shifted clear line key
++ KEY_SEXIT Shifted exit key
++ KEY_SFIND Shifted find key
++ KEY_SHELP Shifted help key
++ KEY_SHOME Shifted home key
++ KEY_SIC Shifted input key
++ KEY_SLEFT Shifted left arrow key
++ KEY_SMESSAGE Shifted message key
++ KEY_SMOVE Shifted move key
++ KEY_SNEXT Shifted next key
++ KEY_SOPTIONS Shifted options key
++ KEY_SPREVIOUS Shifted prev key
++ KEY_SPRINT Shifted print key
++ KEY_SREDO Shifted redo key
++ KEY_SREPLACE Shifted replace key
++ KEY_SRIGHT Shifted right arrow
++ KEY_SRSUME Shifted resume key
++ KEY_SSAVE Shifted save key
++ KEY_SSUSPEND Shifted suspend key
++ KEY_SUNDO Shifted undo key
+
+- KEY_SUSPEND Suspend key
+- KEY_UNDO Undo key
++ KEY_SUSPEND Suspend key
++ KEY_UNDO Undo key
+
+ Keypad is arranged like this:
+
+@@ -247,7 +247,7 @@
+ according to whether they treat these control keys spe-
+ cially (and ignore the terminfo), or use the terminfo def-
+ initions. <STRONG>Ncurses</STRONG> uses the terminfo definition. If it
+- says that KEY_ENTER is control/M, <STRONG>getch</STRONG>, will return
++ says that KEY_ENTER is control/M, <STRONG>getch</STRONG> will return
+ KEY_ENTER when you press control/M.
+
+ When using <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, or <STRONG>mvwgetch</STRONG>, nocbreak
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_getstr.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_getstr.3x.html
+--- ncurses-5.3/doc/html/man/curs_getstr.3x.html Sat Jun 22 16:37:28 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_getstr.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_getstr.3x,v 1.11 2002/04/13 22:14:30 tom Exp @
++ * @Id: curs_getstr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -109,7 +109,7 @@
+ SVr3 and early SVr4 curses implementations did not reject
+ function keys; the SVr4.0 documentation claimed that "spe-
+ cial keys" (such as function keys, "home" key, "clear"
+- key, <EM>etc</EM>.) are interpreted" without giving details. It
++ key, <EM>etc</EM>.) are "interpreted", without giving details. It
+ lied. In fact, the `character' value appended to the
+ string by those implementations was predictable but not
+ useful (being, in fact, the low-order eight bits of the
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_getyx.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_getyx.3x.html
+--- ncurses-5.3/doc/html/man/curs_getyx.3x.html Sat Oct 12 18:27:50 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_getyx.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_getyx.3x,v 1.8 2002/09/21 19:00:38 tom Exp @
++ * @Id: curs_getyx.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -74,7 +74,7 @@
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- The return values of these macros are undefined (<EM>i</EM>.<EM>e</EM>.,
++ The return values of these macros are undefined (i.e.,
+ they should not be used as the right-hand side of assign-
+ ment statements).
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_initscr.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_initscr.3x.html
+--- ncurses-5.3/doc/html/man/curs_initscr.3x.html Sat Jul 27 19:39:31 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_initscr.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.11 2002/07/20 14:51:04 tom Exp @
++ * @Id: curs_initscr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_inopts.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_inopts.3x.html
+--- ncurses-5.3/doc/html/man/curs_inopts.3x.html Sat Aug 31 16:59:27 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_inopts.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.9 2002/08/10 22:29:49 tom Exp @
++ * @Id: curs_inopts.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -172,9 +172,9 @@
+
+ The <STRONG>timeout</STRONG> and <STRONG>wtimeout</STRONG> routines set blocking or non-
+ blocking read for a given window. If <EM>delay</EM> is negative,
+- blocking read is used (<EM>i</EM>.<EM>e</EM>., waits indefinitely for
++ blocking read is used (i.e., waits indefinitely for
+ input). If <EM>delay</EM> is zero, then non-blocking read is used
+- (<EM>i</EM>.<EM>e</EM>., read returns <STRONG>ERR</STRONG> if no input is waiting). If <EM>delay</EM>
++ (i.e., read returns <STRONG>ERR</STRONG> if no input is waiting). If <EM>delay</EM>
+ is positive, then read blocks for <EM>delay</EM> milliseconds, and
+ returns <STRONG>ERR</STRONG> if there is still no input. Hence, these rou-
+ tines provide the same functionality as <STRONG>nodelay</STRONG>, plus the
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_insch.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_insch.3x.html
+--- ncurses-5.3/doc/html/man/curs_insch.3x.html Sat Jun 22 16:25:23 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_insch.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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_insch.3x,v 1.7 2000/07/01 19:57:21 tom Exp @
++ * @Id: curs_insch.3x,v 1.8 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -59,7 +59,7 @@
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+- These routines, insert the character <EM>ch</EM> before the charac-
++ These routines insert the character <EM>ch</EM> before the charac-
+ ter under the cursor. All characters to the right of the
+ cursor are moved one space to the right, with the possi-
+ bility of the rightmost character on the line being lost.
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_mouse.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_mouse.3x.html
+--- ncurses-5.3/doc/html/man/curs_mouse.3x.html Sat Jul 27 19:39:34 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_mouse.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.20 2002/07/20 14:52:14 tom Exp @
++ * @Id: curs_mouse.3x,v 1.22 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -213,29 +213,36 @@
+ than xterm and there is no gpm daemon running on your
+ machine, mouse events will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ (and the <STRONG>wmousemask</STRONG> function will always return <STRONG>0</STRONG>).
++ If the terminfo entry contains a <STRONG>XM</STRONG> string, this is used
++ in the xterm mouse driver to control the way the terminal
++ is initialized for mouse operation. The default, if <STRONG>XM</STRONG> is
++ not found, corresponds to private mode 1000 of xterm:
++
++ \E[?1000%?%p1%{1}%=%th%el%;
++
+ The z member in the event structure is not presently used.
+- It is intended for use with touch screens (which may be
++ It is intended for use with touch screens (which may be
+ pressure-sensitive) or with 3D-mice/trackballs/power
+ gloves.
+
+
+ </PRE>
+ <H2>BUGS</H2><PRE>
+- Mouse events under xterm will not in fact be ignored dur-
+- ing cooked mode, if they have been enabled by <STRONG>wmousemask</STRONG>.
+- Instead, the xterm mouse report sequence will appear in
++ Mouse events under xterm will not in fact be ignored dur-
++ ing cooked mode, if they have been enabled by <STRONG>wmousemask</STRONG>.
++ Instead, the xterm mouse report sequence will appear in
+ the string read.
+
+ Mouse events under xterm will not be detected correctly in
+- a window with its keypad bit off, since they are inter-
+- preted as a variety of function key. Your terminfo
+- description must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning
++ a window with its keypad bit off, since they are inter-
++ preted as a variety of function key. Your terminfo
++ description must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning
+ of the response from xterm for mouse clicks).
+
+- Because there are no standard terminal responses that
+- would serve to identify terminals which support the xterm
+- mouse protocol, <STRONG>ncurses</STRONG> assumes that if your $TERM envi-
+- ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined in
++ Because there are no standard terminal responses that
++ would serve to identify terminals which support the xterm
++ mouse protocol, <STRONG>ncurses</STRONG> assumes that if your $TERM envi-
++ ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined in
+ the terminal description, then the terminal may send mouse
+ events.
+
+@@ -246,13 +253,6 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_outopts.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_outopts.3x.html
+--- ncurses-5.3/doc/html/man/curs_outopts.3x.html Sat Jun 22 16:25:25 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_outopts.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2003 Free 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_outopts.3x,v 1.17 2001/10/14 00:50:30 tom Exp @
++ * @Id: curs_outopts.3x,v 1.18 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -100,7 +100,7 @@
+
+ If <STRONG>immedok</STRONG> is called with <STRONG>TRUE</STRONG> <STRONG>as</STRONG> <STRONG>argument</STRONG>, any change in
+ the window image, such as the ones caused by <STRONG>waddch,</STRONG>
+- <STRONG>wclrtobot,</STRONG> <STRONG>wscrl</STRONG>, <EM>etc</EM>., automatically cause a call to <STRONG>wre-</STRONG>
++ <STRONG>wclrtobot,</STRONG> <STRONG>wscrl</STRONG>, etc., automatically cause a call to <STRONG>wre-</STRONG>
+ <STRONG>fresh</STRONG>. However, it may degrade performance considerably,
+ due to repeated calls to <STRONG>wrefresh</STRONG>. It is disabled by
+ default.
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_pad.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_pad.3x.html
+--- ncurses-5.3/doc/html/man/curs_pad.3x.html Sat Jun 22 16:25:25 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_pad.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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_pad.3x,v 1.9 2000/07/04 22:38:13 tom Exp @
++ * @Id: curs_pad.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -70,7 +70,7 @@
+ sarily associated with a particular part of the screen.
+ Pads can be used when a large window is needed, and only a
+ part of the window will be on the screen at one time.
+- Automatic refreshes of pads (<EM>e</EM>.<EM>g</EM>., from scrolling or echo-
++ Automatic refreshes of pads (e.g., from scrolling or echo-
+ ing of input) do not occur. It is not legal to call <STRONG>wre-</STRONG>
+ <STRONG>fresh</STRONG> with a <EM>pad</EM> as an argument; the routines <STRONG>prefresh</STRONG> or
+ <STRONG>pnoutrefresh</STRONG> should be called instead. Note that these
+@@ -106,7 +106,7 @@
+ The <STRONG>pechochar</STRONG> routine is functionally equivalent to a call
+ to <STRONG>addch</STRONG> followed by a call to <STRONG>refresh</STRONG>, a call to <STRONG>waddch</STRONG>
+ followed by a call to <STRONG>wrefresh</STRONG>, or a call to <STRONG>waddch</STRONG> fol-
+- lowed by a call to <STRONG>prefresh.</STRONG> The knowledge that only a
++ lowed by a call to <STRONG>prefresh</STRONG>. The knowledge that only a
+ single character is being output is taken into considera-
+ tion and, for non-control characters, a considerable per-
+ formance gain might be seen by using these routines
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_print.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_print.3x.html
+--- ncurses-5.3/doc/html/man/curs_print.3x.html Sat Jun 22 16:25:26 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_print.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_print.3x,v 1.5 2002/02/16 22:39:04 tom Exp @
++ * @Id: curs_print.3x,v 1.6 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_printw.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_printw.3x.html
+--- ncurses-5.3/doc/html/man/curs_printw.3x.html Sat Jul 27 19:39:35 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_printw.3x.html Tue May 13 20:08:22 2003
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_printw.3x,v 1.12 2002/07/20 15:01:43 tom Exp @
++ * @Id: curs_printw.3x,v 1.13 2002/11/16 22:28:57 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -51,45 +51,48 @@
+ <H2>SYNOPSIS</H2><PRE>
+ <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+- <STRONG>int</STRONG> <STRONG>printw(char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+- <STRONG>int</STRONG> <STRONG>wprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+- <STRONG>int</STRONG> <STRONG>mvprintw(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+- <STRONG>int</STRONG> <STRONG>mvwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+- <STRONG>int</STRONG> <STRONG>vwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
+- <STRONG>int</STRONG> <STRONG>vw_printw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
++ <STRONG>int</STRONG> <STRONG>printw(const</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
++ <STRONG>int</STRONG> <STRONG>wprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
++ <STRONG>int</STRONG> <STRONG>mvprintw(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
++ <STRONG>int</STRONG> <STRONG>mvwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG>
++ <STRONG>...);</STRONG>
++ <STRONG>int</STRONG> <STRONG>vwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>var-</STRONG>
++ <STRONG>glist);</STRONG>
++ <STRONG>int</STRONG> <STRONG>vw_printw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>var-</STRONG>
++ <STRONG>glist);</STRONG>
+
+
+ </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.3S.html">printf(3S)</A></STRONG>]. In effect, the
++ 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.3S.html">printf(3S)</A></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.3S.html">printf(3S)</A></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
++ The <STRONG>vwprintw</STRONG> and <STRONG>wv_printw</STRONG> routines are analogous to
++ <STRONG>vprintf</STRONG> [see <STRONG><A HREF="printf.3S.html">printf(3S)</A></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>.
+
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
+- and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
++ Routines that return an integer return <STRONG>ERR</STRONG> upon failure
++ and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
+ <STRONG>ERR</STRONG>") upon successful completion.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- The XSI Curses standard, Issue 4 describes these func-
+- tions. The function <STRONG>vwprintw</STRONG> is marked TO BE WITHDRAWN,
+- and is to be replaced by a function <STRONG>vw_printw</STRONG> using the
++ The XSI Curses standard, Issue 4 describes these func-
++ tions. The function <STRONG>vwprintw</STRONG> is marked TO BE WITHDRAWN,
++ and is to be replaced by a function <STRONG>vw_printw</STRONG> using the
+ <STRONG>&lt;stdarg.h&gt;</STRONG> interface. The Single Unix Specification, Ver-
+- sion 2 states that <STRONG>vw_printw</STRONG> is preferred to <STRONG>vwprintw</STRONG>
+- since the latter requires including <STRONG>&lt;varargs.h&gt;</STRONG>, which
+- cannot be used in the same file as <STRONG>&lt;stdarg.h&gt;</STRONG>. This
+- implementation uses <STRONG>&lt;stdarg.h&gt;</STRONG> for both, because that
++ sion 2 states that <STRONG>vw_printw</STRONG> is preferred to <STRONG>vwprintw</STRONG>
++ since the latter requires including <STRONG>&lt;varargs.h&gt;</STRONG>, which
++ cannot be used in the same file as <STRONG>&lt;stdarg.h&gt;</STRONG>. This
++ implementation uses <STRONG>&lt;stdarg.h&gt;</STRONG> for both, because that
+ header is included in <STRONG>&lt;curses.h</STRONG>&gt;.
+
+
+@@ -99,9 +102,6 @@
+
+
+
+-
+-
+-
+
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_scroll.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_scroll.3x.html
+--- ncurses-5.3/doc/html/man/curs_scroll.3x.html Sat Jun 22 16:25:27 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_scroll.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2003 Free 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_scroll.3x,v 1.9 2001/10/14 00:51:56 tom Exp @
++ * @Id: curs_scroll.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_slk.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_slk.3x.html
+--- ncurses-5.3/doc/html/man/curs_slk.3x.html Sat Jun 22 16:25:27 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_slk.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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_slk.3x,v 1.11 2001/03/03 21:05:41 Todd.C.Miller Exp @
++ * @Id: curs_slk.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -115,7 +115,7 @@
+ The <STRONG>slk_clear</STRONG> routine clears the soft labels from the
+ screen.
+
+- The <STRONG>slk_restore</STRONG> routine, restores the soft labels to the
++ The <STRONG>slk_restore</STRONG> routine restores the soft labels to the
+ screen after a <STRONG>slk_clear</STRONG> has been performed.
+
+ The <STRONG>slk_touch</STRONG> routine forces all the soft labels to be
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_termcap.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_termcap.3x.html
+--- ncurses-5.3/doc/html/man/curs_termcap.3x.html Sat Jun 22 16:25:28 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_termcap.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.16 2002/02/16 19:26:41 tom Exp @
++ * @Id: curs_termcap.3x,v 1.18 2003/02/08 22:25:47 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -136,32 +136,86 @@
+ 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
++ 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>.
+
+
+ </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="putc.3S.html">putc(3S)</A></STRONG>.
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+ </PRE>
+ <HR>
+ <ADDRESS>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_terminfo.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_terminfo.3x.html
+--- ncurses-5.3/doc/html/man/curs_terminfo.3x.html Sat Jul 27 19:39:37 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_terminfo.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2002,2003 Free 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_terminfo.3x,v 1.16 2002/07/20 16:05:19 tom Exp @
++ * @Id: curs_terminfo.3x,v 1.17 2003/05/10 20:22:01 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_util.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_util.3x.html
+--- ncurses-5.3/doc/html/man/curs_util.3x.html Sat Oct 12 18:27:58 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_util.3x.html Tue May 13 20:08:22 2003
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_util.3x,v 1.9 2002/09/01 19:44:37 tom Exp @
++ * @Id: curs_util.3x,v 1.10 2002/12/21 22:21:37 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -110,17 +110,18 @@
+ The <STRONG>delay_output</STRONG> routine inserts an <EM>ms</EM> millisecond pause
+ in output. This routine should not be used extensively
+ because padding characters are used rather than a CPU
+- pause.
++ pause. If no padding character is specified, this uses
++ <STRONG>napms</STRONG> to perform the delay.
+
+- The <STRONG>flushinp</STRONG> routine throws away any typeahead that has
+- been typed by the user and has not yet been read by the
++ The <STRONG>flushinp</STRONG> routine throws away any typeahead that has
++ been typed by the user and has not yet been read by the
+ program.
+
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- Except for <STRONG>flushinp</STRONG>, routines that return an integer
+- return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an
++ Except for <STRONG>flushinp</STRONG>, routines that return an integer
++ return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an
+ integer value other than <STRONG>ERR</STRONG>") upon successful completion.
+
+ <STRONG>flushinp</STRONG> always returns <STRONG>OK</STRONG>.
+@@ -130,22 +131,21 @@
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- The XSI Curses standard, Issue 4 describes these func-
+- tions. It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a
+- null pointer if unsuccessful, but does not define any
++ The XSI Curses standard, Issue 4 describes these func-
++ tions. It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a
++ null pointer if unsuccessful, but does not define any
+ error conditions.
+
+ 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>).
+
+
+ </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_scr_dump.3x.html">curs_scr_dump(3x)</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><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>.
+
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/curs_window.3x.html ncurses-5.3.20030906.orig/doc/html/man/curs_window.3x.html
+--- ncurses-5.3/doc/html/man/curs_window.3x.html Sat Jun 22 16:25:29 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/curs_window.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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_window.3x,v 1.9 2000/07/01 20:08:37 tom Exp @
++ * @Id: curs_window.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/define_key.3x.html ncurses-5.3.20030906.orig/doc/html/man/define_key.3x.html
+--- ncurses-5.3/doc/html/man/define_key.3x.html Sat Jun 22 16:25:29 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/define_key.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 @@
+ * authorization. *
+ ****************************************************************************
+ * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1997
+- * @Id: define_key.3x,v 1.8 2002/02/16 22:39:52 tom Exp @
++ * @Id: define_key.3x,v 1.9 2003/05/17 23:25:11 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -51,7 +51,7 @@
+ <H2>SYNOPSIS</H2><PRE>
+ <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+- <STRONG>int</STRONG> <STRONG>define_key(char</STRONG> <STRONG>*definition,</STRONG> <STRONG>int</STRONG> <STRONG>keycode);</STRONG>
++ <STRONG>int</STRONG> <STRONG>define_key(const</STRONG> <STRONG>char</STRONG> <STRONG>*definition,</STRONG> <STRONG>int</STRONG> <STRONG>keycode);</STRONG>
+
+
+ </PRE>
+diff -urNd -urNd ncurses-5.3/doc/html/man/form_field.3x.html ncurses-5.3.20030906.orig/doc/html/man/form_field.3x.html
+--- ncurses-5.3/doc/html/man/form_field.3x.html Sat Jun 22 16:25:31 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/form_field.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998 Free Software Foundation, Inc. *
++ * Copyright (c) 1998,2003 Free 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.5 1998/11/29 01:05:52 Rick.Ohnemus Exp @
++ * @Id: form_field.3x,v 1.6 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -69,7 +69,7 @@
+ The function <STRONG>field_count</STRONG> returns the count of fields in
+ <EM>form</EM>.
+
+- The function <STRONG>move_field</STRONG> move the given field (which must
++ The function <STRONG>move_field</STRONG> moves the given field (which must
+ be disconnected) to a specified location on the screen.
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/form_field_buffer.3x.html ncurses-5.3.20030906.orig/doc/html/man/form_field_buffer.3x.html
+--- ncurses-5.3/doc/html/man/form_field_buffer.3x.html Sat Jun 22 16:25:31 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/form_field_buffer.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_buffer.3x,v 1.9 2002/01/19 22:48:23 tom Exp @
++ * @Id: form_field_buffer.3x,v 1.10 2003/05/10 20:22:01 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/form_field_just.3x.html ncurses-5.3.20030906.orig/doc/html/man/form_field_just.3x.html
+--- ncurses-5.3/doc/html/man/form_field_just.3x.html Sat Jun 22 16:25:32 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/form_field_just.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_just.3x,v 1.6 2002/01/19 22:48:41 tom Exp @
++ * @Id: form_field_just.3x,v 1.7 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -68,7 +68,7 @@
+ The function <STRONG>field_just</STRONG> returns one of: NO_JUSTIFICATION,
+ JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
+
+- The function <STRONG>set_field_just</STRONG> return one of the following:
++ The function <STRONG>set_field_just</STRONG> returns one of the following:
+
+ <STRONG>E_OK</STRONG> The routine succeeded.
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/form_field_new.3x.html ncurses-5.3.20030906.orig/doc/html/man/form_field_new.3x.html
+--- ncurses-5.3/doc/html/man/form_field_new.3x.html Sat Jun 22 16:25:32 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/form_field_new.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_new.3x,v 1.11 2002/02/16 22:39:52 tom Exp @
++ * @Id: form_field_new.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -115,8 +115,8 @@
+
+ It may be unwise to count on the set of attributes copied
+ by <STRONG><A HREF="dup_field.3x.html">dup_field(3x)</A></STRONG> being portable; the System V forms
+- library documents are not very explicit on what gets
+- copied and was not.
++ library documents are not very explicit about what gets
++ copied and what doesn't.
+
+
+ </PRE>
+diff -urNd -urNd ncurses-5.3/doc/html/man/form_field_opts.3x.html ncurses-5.3.20030906.orig/doc/html/man/form_field_opts.3x.html
+--- ncurses-5.3/doc/html/man/form_field_opts.3x.html Sat Jun 22 16:25:32 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/form_field_opts.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998 Free Software Foundation, Inc. *
++ * Copyright (c) 1998,2003 Free 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_opts.3x,v 1.7 1998/11/29 01:06:54 Rick.Ohnemus Exp @
++ * @Id: form_field_opts.3x,v 1.8 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -75,7 +75,7 @@
+
+ O_VISIBLE
+ The field is displayed. If this option is off, dis-
+- play of the field is suppressed,
++ play of the field is suppressed.
+
+ O_ACTIVE
+ The field is visited during processing. If this
+@@ -98,7 +98,7 @@
+ at the first position.
+
+ O_AUTOSKIP
+- Skip to the next field when this one fills
++ Skip to the next field when this one fills.
+
+
+ O_NULLOK
+diff -urNd -urNd ncurses-5.3/doc/html/man/form_field_validation.3x.html ncurses-5.3.20030906.orig/doc/html/man/form_field_validation.3x.html
+--- ncurses-5.3/doc/html/man/form_field_validation.3x.html Sat Jun 22 16:25:33 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/form_field_validation.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_field_validation.3x,v 1.12 2002/02/16 22:39:52 tom Exp @
++ * @Id: form_field_validation.3x,v 1.14 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -53,12 +53,20 @@
+ FIELDTYPE *field_type(const FIELD *field);
+ void *field_arg(const FIELD *field);
+
++ FIELDTYPE *TYPE_ALNUM;
++ FIELDTYPE *TYPE_ALPHA;
++ FIELDTYPE *TYPE_ENUM;
++ FIELDTYPE *TYPE_INTEGER;
++ FIELDTYPE *TYPE_NUMERIC;
++ FIELDTYPE *TYPE_REGEXP;
++ FIELDTYPE *TYPE_IPV4;
++
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+ The function <STRONG>set_field_type</STRONG> declares a data type for a
+ given form field. This is the type checked by validation
+- functions. The types are as follows:
++ functions. The predefined types are as follows:
+
+ TYPE_ALNUM
+ Alphanumeric data. Requires a third <STRONG>int</STRONG> argument, a
+@@ -78,7 +86,7 @@
+ than one list elements with that prefix). Please
+ notice that the string list is not copied, only a
+ reference to it is stored in the field. So you should
+- avoid to use a list that lives in automatic variables
++ avoid using a list that lives in automatic variables
+ on the stack.
+
+ TYPE_INTEGER
+@@ -86,9 +94,9 @@
+ Requires a third <STRONG>int</STRONG> argument controlling the preci-
+ sion, a fourth <STRONG>long</STRONG> argument constraining minimum
+ value, and a fifth <STRONG>long</STRONG> constraining maximum value.
+- If the maximum value is less or equal the minimum
+- value, the range is simply ignored. On return the
+- field buffer is formatted according to the <STRONG>printf</STRONG>
++ If the maximum value is less than or equal to the
++ minimum value, the range is simply ignored. On return
++ the field buffer is formatted according to the <STRONG>printf</STRONG>
+ format specification ".*ld", where the '*' is
+ replaced by the precision argument. For details of
+ the precision handling see <STRONG>printf's</STRONG> man-page.
+@@ -98,47 +106,48 @@
+ Requires a third <STRONG>int</STRONG> argument controlling the preci-
+ sion, a fourth <STRONG>double</STRONG> argument constraining minimum
+ value, and a fifth <STRONG>double</STRONG> constraining maximum value.
+- If your system supports locale's, the decimal point
++ If your system supports locales, the decimal point
+ character to be used must be the one specified by
+- your locale. If the maximum value is less or equal
+- the minimum value, the range is simply ignored. On
+- return the field buffer is formatted according to the
+- <STRONG>printf</STRONG> format specification ".*f", where the '*' is
+- replaced by the precision argument. For details of
+- the precision handling see <STRONG>printf's</STRONG> man-page.
++ your locale. If the maximum value is less than or
++ equal to the minimum value, the range is simply
++ ignored. On return the field buffer is formatted
++ according to the <STRONG>printf</STRONG> format specification ".*f",
++ where the '*' is replaced by the precision argument.
++ For details of the precision handling see <STRONG>printf's</STRONG>
++ man-page.
+
+ TYPE_REGEXP
+- Regular expression data. Requires a regular expres-
+- sion <STRONG>(char</STRONG> <STRONG>*)</STRONG> third argument; the data is valid if
+- the regular expression matches it. Regular expres-
+- sions are in the format of <STRONG><A HREF="regcomp.3x.html">regcomp(3x)</A></STRONG> and
+- <STRONG><A HREF="regexec.3x.html">regexec(3x)</A></STRONG>. Please notice that the regular expres-
+- sion must match the whole field. If you have for
+- example an eight character wide field, a regular
+- expression "^[0-9]*$" always means that you have to
+- fill all eight positions with digits. If you want to
+- allow fewer digits, you may use for example "^[0-9]*
++ Regular expression data. Requires a regular expres-
++ sion <STRONG>(char</STRONG> <STRONG>*)</STRONG> third argument; the data is valid if
++ the regular expression matches it. Regular expres-
++ sions are in the format of <STRONG><A HREF="regcomp.3x.html">regcomp(3x)</A></STRONG> and
++ <STRONG><A HREF="regexec.3x.html">regexec(3x)</A></STRONG>. Please notice that the regular expres-
++ sion must match the whole field. If you have for
++ example an eight character wide field, a regular
++ expression "^[0-9]*$" always means that you have to
++ fill all eight positions with digits. If you want to
++ allow fewer digits, you may use for example "^[0-9]*
+ *$" which is good for trailing spaces (up to an empty
+- field), or "^ *[0-9]* *$" which is good for leading
++ field), or "^ *[0-9]* *$" which is good for leading
+ and trailing spaces around the digits.
+
+ TYPE_IPV4
+ An Internet Protocol Version 4 address. This requires
+- no additional argument. It is checked whether or not
+- the buffer has the form a.b.c.d, where a,b,c and d
++ no additional argument. It is checked whether or not
++ the buffer has the form a.b.c.d, where a,b,c and d
+ are numbers between 0 and 255. Trailing blanks in the
+- buffer are ignored. The address itself is not vali-
++ buffer are ignored. The address itself is not vali-
+ dated. Please note that this is an ncurses extension.
+- This field type may not be available in other curses
++ This field type may not be available in other curses
+ implementations.
+
+- It is possible to set up new programmer-defined field
+- types. See the <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> manual page.
++ It is possible to set up new programmer-defined field
++ types. See the <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> manual page.
+
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- The functions <STRONG>field_type</STRONG> and <STRONG>field_arg</STRONG> return <STRONG>NULL</STRONG> on
++ The functions <STRONG>field_type</STRONG> and <STRONG>field_arg</STRONG> return <STRONG>NULL</STRONG> on
+ error. The function <STRONG>set_field_type</STRONG> returns one of the fol-
+ lowing:
+
+@@ -148,6 +157,7 @@
+ System error occurred (see <STRONG>errno</STRONG>).
+
+
++
+ </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>.
+@@ -161,26 +171,17 @@
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- These routines emulate the System V forms library. They
++ These routines emulate the System V forms library. They
+ were not supported on Version 7 or BSD versions.
+
+
+ </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 -urNd -urNd ncurses-5.3/doc/html/man/form_fieldtype.3x.html ncurses-5.3.20030906.orig/doc/html/man/form_fieldtype.3x.html
+--- ncurses-5.3/doc/html/man/form_fieldtype.3x.html Sat Jun 22 16:25:33 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/form_fieldtype.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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_fieldtype.3x,v 1.9 2001/08/04 20:36:25 William.Setzer Exp @
++ * @Id: form_fieldtype.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -72,11 +72,11 @@
+ The function <STRONG>new_fieldtype</STRONG> creates a new field type usable
+ for data validation. You supply it with <EM>field</EM><STRONG>_</STRONG><EM>check</EM>, a
+ predicate to check the validity of an entered data string
+- whenever the user attempt to leave a field. The (FIELD *)
+- argument is passed in so the validation predicate can see
+- the field's buffer, sizes and other attributes; the second
+- argument is an argument-block structure, about which more
+- below.
++ whenever the user attempts to leave a field. The (FIELD
++ *) argument is passed in so the validation predicate can
++ see the field's buffer, sizes and other attributes; the
++ second argument is an argument-block structure, about
++ which more below.
+
+ You also supply <STRONG>new_fieldtype</STRONG> with <EM>char</EM><STRONG>_</STRONG><EM>check</EM>, a function
+ to validate input characters as they are entered; it will
+@@ -86,20 +86,24 @@
+ The function <STRONG>free_fieldtype</STRONG> frees the space allocated for
+ a given validation type.
+
+- The function <STRONG>set_fieldtype</STRONG> associates three storage-man-
+- agement functions with a field type. The <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> function
+- is automatically applied to the list of arguments you give
+- <STRONG>set_field_type</STRONG> when attaching validation to a field; its
+- job is to bundle these into an allocated argument-block
+- object which can later be passed to validation predicated.
+- The other two hook arguments should copy and free argu-
+- ment-block structures. They will be used by the forms-
+- driver code. You must supply the <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> function, the
+- other two are optional, you may supply NULL for them. In
+- this case it is assumed, that <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> doesn't allocate
++ The function <STRONG>set_fieldtype_arg</STRONG> associates three storage-
++ management functions with a field type. The <EM>make</EM><STRONG>_</STRONG><EM>arg</EM>
++ function is automatically applied to the list of arguments
++ you give <STRONG>set_field_type</STRONG> when attaching validation to a
++ field; its job is to bundle these into an allocated argu-
++ ment-block object which can later be passed to validation
++ predicated. The other two hook arguments should copy and
++ free argument-block structures. They will be used by the
++ forms-driver code. You must supply the <EM>make</EM><STRONG>_</STRONG><EM>arg</EM> function,
++ the other two are optional, you may supply NULL for them.
++ In this case it is assumed that <EM>make</EM><STRONG>_</STRONG><EM>arg</EM> does not allocate
+ memory but simply loads the argument into a single scalar
+ value.
+
++ The function <STRONG>link_fieldtype</STRONG> creates a new field type from
++ the two given types. They are connected by an logical
++ 'OR'.
++
+ The form driver requests <STRONG>REQ_NEXT_CHOICE</STRONG> and
+ <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
+@@ -158,10 +162,6 @@
+
+
+
+-
+-
+-
+-
+
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/infocmp.1m.html ncurses-5.3.20030906.orig/doc/html/man/infocmp.1m.html
+--- ncurses-5.3/doc/html/man/infocmp.1m.html Sat Oct 12 18:28:05 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/infocmp.1m.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.30 2002/10/05 21:22:21 tom Exp @
++ * @Id: infocmp.1m,v 1.33 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -313,8 +313,8 @@
+
+ An SGR0 designates an empty highlight sequence
+ (equivalent to {SGR:NORMAL}).
+- -
+- l Set output format to terminfo.
++
++ <STRONG>-l</STRONG> Set output format to terminfo.
+
+ <STRONG>-p</STRONG> Ignore padding specifications when comparing strings.
+
+@@ -387,13 +387,13 @@
+
+ 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 -r
+- -RBSD.
++ more restricted set. To see only the 4.4BSD set, use <STRONG>-r</STRONG>
++ <STRONG>-RBSD</STRONG>.
+
+
+ </PRE>
+ <H2>BUGS</H2><PRE>
+- The -F option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> should be a <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> mode.
++ The <STRONG>-F</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> should be a <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> mode.
+
+
+ </PRE>
+diff -urNd -urNd ncurses-5.3/doc/html/man/infotocap.1m.html ncurses-5.3.20030906.orig/doc/html/man/infotocap.1m.html
+--- ncurses-5.3/doc/html/man/infotocap.1m.html Sat Jun 22 16:25:36 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/infotocap.1m.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1999,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2000,2003 Free 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: infotocap.1m,v 1.3 2000/08/13 01:56:03 tom Exp @
++ * @Id: infotocap.1m,v 1.4 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/key_defined.3x.html ncurses-5.3.20030906.orig/doc/html/man/key_defined.3x.html
+--- ncurses-5.3/doc/html/man/key_defined.3x.html Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/doc/html/man/key_defined.3x.html Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,119 @@
++<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!--
++ ****************************************************************************
++ * Copyright (c) 2003 Free 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 2003
++ * @Id: key_defined.3x,v 1.2 2003/05/17 23:24:45 tom Exp @
++-->
++<HTML>
++<HEAD>
++<TITLE>key_defined 3x</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>key_defined 3x</H1>
++<HR>
++<PRE>
++<!-- Manpage converted by man2html 3.0.1 -->
++
++</PRE>
++<H2>NAME</H2><PRE>
++ <STRONG>define_key</STRONG> - define a keycode
++
++
++</PRE>
++<H2>SYNOPSIS</H2><PRE>
++ <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
++
++ <STRONG>int</STRONG> <STRONG>key_defined(const</STRONG> <STRONG>char</STRONG> <STRONG>*definition);</STRONG>
++
++
++</PRE>
++<H2>DESCRIPTION</H2><PRE>
++ This is an extension to the curses library. It permits an
++ application to determine if a string is currently bound to
++ any keycode.
++
++
++</PRE>
++<H2>RETURN VALUE</H2><PRE>
++ If the string is bound to a keycode, its value (greater
++ than zero) is returned. If no keycode is bound, zero is
++ returned. If the string conflicts with longer strings
++ which are bound to keys, -1 is returned.
++
++
++</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 them be con-
++ ditioned using NCURSES_VERSION.
++
++
++</PRE>
++<H2>SEE ALSO</H2><PRE>
++ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>.
++
++
++</PRE>
++<H2>AUTHOR</H2><PRE>
++ Thomas Dickey.
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++</PRE>
++<HR>
++<ADDRESS>
++Man(1) output converted with
++<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
++</ADDRESS>
++</BODY>
++</HTML>
+diff -urNd -urNd ncurses-5.3/doc/html/man/keybound.3x.html ncurses-5.3.20030906.orig/doc/html/man/keybound.3x.html
+--- ncurses-5.3/doc/html/man/keybound.3x.html Sat Jun 22 16:25:36 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/keybound.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1999,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2002,2003 Free 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 @@
+ * authorization. *
+ ****************************************************************************
+ * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1999
+- * @Id: keybound.3x,v 1.3 2002/02/16 22:30:36 tom Exp @
++ * @Id: keybound.3x,v 1.4 2003/03/08 19:08:33 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -63,10 +63,12 @@
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- The keycode must be greater than zero, else NULL is
+- returned. If it does not correspond to a defined key,
+- then NULL is returned. Otherwise, the function returns a
+- string, which must be freed by the caller.
++ The <EM>keycode</EM> parameter must be greater than zero, else NULL
++ is returned. If it does not correspond to a defined key,
++ then NULL is returned. The <EM>count</EM> parameter is used to
++ allow the application to iterate through multiple defini-
++ tions, counting from zero. When successful, the function
++ returns a string which must be freed by the caller.
+
+
+ </PRE>
+@@ -88,8 +90,6 @@
+
+
+
+-
+-
+
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/menu_driver.3x.html ncurses-5.3.20030906.orig/doc/html/man/menu_driver.3x.html
+--- ncurses-5.3/doc/html/man/menu_driver.3x.html Sat Jun 22 16:25:37 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/menu_driver.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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: menu_driver.3x,v 1.10 2002/02/16 22:40:59 tom Exp @
++ * @Id: menu_driver.3x,v 1.11 2003/05/10 20:22:01 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/menu_pattern.3x.html ncurses-5.3.20030906.orig/doc/html/man/menu_pattern.3x.html
+--- ncurses-5.3/doc/html/man/menu_pattern.3x.html Sat Jun 22 16:25:39 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/menu_pattern.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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: menu_pattern.3x,v 1.7 2002/02/16 22:40:59 tom Exp @
++ * @Id: menu_pattern.3x,v 1.8 2003/05/10 20:22:01 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/ncurses.3x.html ncurses-5.3.20030906.orig/doc/html/man/ncurses.3x.html
+--- ncurses-5.3/doc/html/man/ncurses.3x.html Sat Aug 31 16:59:48 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/ncurses.3x.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998,1999,2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.63 2002/08/10 21:56:07 tom Exp @
++ * @Id: ncurses.3x,v 1.66 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -354,6 +354,7 @@
+ is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+ is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+ isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
++ key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
+ key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
+ keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+@@ -369,8 +370,8 @@
+ mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+ mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+ move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+- mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+
++ mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+ mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+ mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+ mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+@@ -423,8 +424,8 @@
+ mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+ mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+ mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+- mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+
++ mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+ mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+ mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+ mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+@@ -477,8 +478,8 @@
+ 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>
+ raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+- redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+
++ redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+ refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+ reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+ reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+@@ -531,8 +532,8 @@
+ tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+ tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+ tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+- tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+
++ tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+ tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+@@ -585,8 +586,8 @@
+ wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+ wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+ wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+- wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+
++ wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+ wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+ wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+@@ -639,8 +640,8 @@
+ wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+ wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+- wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+
++ wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+ wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+@@ -655,9 +656,9 @@
+ descriptions.
+
+ All macros return the value of the <STRONG>w</STRONG> version, except
+- <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, <STRONG>getmaxyx</STRONG>. The
++ <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>,
+- and <STRONG>getmaxyx</STRONG> are undefined (<EM>i</EM>.<EM>e</EM>., these should not be used
++ and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
+ as the right-hand side of assignment statements).
+
+ Routines that return pointers return <STRONG>NULL</STRONG> on error.
+@@ -674,7 +675,7 @@
+ 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
++ 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.
+
+@@ -698,7 +699,6 @@
+ host which does not honor NAWS (Negotiations About
+ Window Size), or because you are temporarily running
+ as another user.
+-
+ Either COLUMNS or LINES symbols may be specified
+ independently. This is mainly useful to circumvent
+ legacy misfeatures of terminal descriptions, e.g.,
+@@ -838,7 +838,7 @@
+ The complete list of directories in order follows:
+
+ - the last directory to which <STRONG>ncurses</STRONG> wrote, if any,
+- is searched first.
++ is searched first
+
+ - the directory specified by the TERMINFO symbol
+
+@@ -910,8 +910,8 @@
+ 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> and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> manual pages for
+- details.
++ 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>
++ manual pages for details.
+
+ The <STRONG>ncurses</STRONG> library can exploit the capabilities of
+ terminals which implement the ISO-6429 SGR 39 and SGR 49
+diff -urNd -urNd ncurses-5.3/doc/html/man/panel.3x.html ncurses-5.3.20030906.orig/doc/html/man/panel.3x.html
+--- ncurses-5.3/doc/html/man/panel.3x.html Sat Jun 22 16:25:43 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/panel.3x.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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: panel.3x,v 1.10 2000/08/13 01:56:47 tom Exp @
++ * @Id: panel.3x,v 1.11 2003/05/17 22:44:09 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -81,7 +81,7 @@
+ of the stack.
+
+ A window is associated with every panel. The panel rou-
+- tines enable you to create, move, hides, and show panels,
++ tines enable you to create, move, hide, and show panels,
+ as well as position a panel at any desired location in the
+ stack.
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/term.5.html ncurses-5.3.20030906.orig/doc/html/man/term.5.html
+--- ncurses-5.3/doc/html/man/term.5.html Sat Aug 31 16:59:49 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/term.5.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.5,v 1.14 2002/08/10 21:59:37 tom Exp @
++ * @Id: term.5,v 1.15 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/term.7.html ncurses-5.3.20030906.orig/doc/html/man/term.7.html
+--- ncurses-5.3/doc/html/man/term.7.html Sat Jun 22 16:25:44 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/term.7.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.13 2002/04/20 16:50:47 tom Exp @
++ * @Id: term.7,v 1.14 2003/05/10 20:33:49 jmc Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -126,10 +126,10 @@
+ ters or digits. You need to avoid using punctuation char-
+ acters in root names, because they are used and inter-
+ preted as filenames and shell meta-characters (such as !,
+- $, *, ? etc.) embedded in them may cause odd and unhelpful
+- behavior. The slash (/), or any other character that may
+- be interpreted by anyone's file system (\, $, [, ]), is
+- especially dangerous (terminfo is platform-independent,
++ $, *, ?, etc.) embedded in them may cause odd and unhelp-
++ ful behavior. The slash (/), or any other character that
++ may be interpreted by anyone's file system (\, $, [, ]),
++ is especially dangerous (terminfo is platform-independent,
+ and choosing names with special characters could someday
+ make life difficult for users of a future port). The dot
+ (.) character is relatively safe as long as there is at
+@@ -169,23 +169,23 @@
+ another that has this suffix and uses magic cookies
+ to support multiple attributes.
+
+- -am Enable auto-margin (right-margin wraparound)
++ -am Enable auto-margin (right-margin wraparound).
+
+- -m Mono mode - suppress color support
++ -m Mono mode - suppress color support.
+
+ -na No arrow keys - termcap ignores arrow keys which are
+ actually there on the terminal, so the user can use
+ the arrow keys locally.
+
+- -nam No auto-margin - suppress am capability
++ -nam No auto-margin - suppress am capability.
+
+- -nl No labels - suppress soft labels
++ -nl No labels - suppress soft labels.
+
+- -nsl No status line - suppress status line
++ -nsl No status line - suppress status line.
+
+ -pp Has a printer port which is used.
+
+- -rv Terminal in reverse video mode (black on white)
++ -rv Terminal in reverse video mode (black on white).
+
+ -s Enable status line.
+
+@@ -223,10 +223,10 @@
+ compiled terminal capability data base
+
+ /etc/inittab
+- tty line initialization (AT&amp;T-like UNIXes).
++ tty line initialization (AT&amp;T-like UNIXes)
+
+ /etc/ttys
+- tty line initialization (BSD-like UNIXes).
++ tty line initialization (BSD-like UNIXes)
+
+
+ </PRE>
+diff -urNd -urNd ncurses-5.3/doc/html/man/terminfo.5.html ncurses-5.3.20030906.orig/doc/html/man/terminfo.5.html
+--- ncurses-5.3/doc/html/man/terminfo.5.html Sat Aug 31 16:59:51 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/terminfo.5.html Tue May 13 20:08:22 2003
+@@ -34,7 +34,7 @@
+ ****************************************************************************
+ * @Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp @
+ * Head of terminfo man page ends here
+- * @Id: terminfo.tail,v 1.35 2002/04/20 16:49:33 tom Exp @
++ * @Id: terminfo.tail,v 1.38 2003/01/05 22:47:05 tom Exp @
+ * Beginning of terminfo.tail file
+ *.TH
+ -->
+@@ -1221,38 +1221,75 @@
+ 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. Often more complex operations are necessary.
++ 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:
+
+- %% outputs `%'
+- %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
+- as in <STRONG>printf</STRONG>, flags are [-+#] and space
+- %c print pop() like %c in printf()
+- %s print pop() like %s in printf()
+
+- %p[1-9] push <EM>i</EM>'th parm
+- %P[a-z] set dynamic variable [a-z] to pop()
+- %g[a-z] get dynamic variable [a-z] and push it
+- %P[A-Z] set static variable [a-z] to pop()
+- %g[A-Z] get static variable [a-z] and push it
+- %'<EM>c</EM>' char constant <EM>c</EM>
+- %{<EM>nn</EM>} integer constant <EM>nn</EM>
+- %l push strlen(pop)
++ %% outputs `%'
+
+- %+ %- %* %/ %m
+- arithmetic (%m is mod): push(pop() op pop())
+- %&amp; %| %^ bit operations: push(pop() op pop())
+- %= %&gt; %&lt; logical operations: push(pop() op pop())
+- %A, %O logical and &amp; or operations (for conditionals)
+- %! %~ unary operations push(op pop())
+- %i add 1 to first two parameters (for ANSI terminals)
++ %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
++ as in <STRONG>printf</STRONG>, flags are [-+#] and space
+
+- %? expr %t thenpart %e elsepart %;
+- if-then-else, %e elsepart is optional.
+- else-if's are possible a la Algol 68:
+- %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
+- ci are conditions, bi are bodies.
++ %c print pop() like %c in <STRONG>printf</STRONG>
++
++ %s print pop() like %s in <STRONG>printf</STRONG>
++
++ %p[1-9]
++ push <EM>i</EM>'th parameter
++
++ %P[a-z]
++ set dynamic variable [a-z] to pop()
++
++
++ %g[a-z]
++ get dynamic variable [a-z] and push it
++
++ %P[A-Z]
++ set static variable [a-z] to pop()
++
++ %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
++ impact portability to other implementations.
++
++ %'<EM>c</EM>' char constant <EM>c</EM>
++
++ %{<EM>nn</EM>}
++ integer constant <EM>nn</EM>
++
++ %l push strlen(pop)
++
++ %+ %- %* %/ %m
++ arithmetic (%m is mod): push(pop() op pop())
++
++ %&amp; %| %^
++ bit operations: push(pop() op pop())
++
++ %= %&gt; %&lt;
++ logical operations: push(pop() op pop())
++
++ %A, %O
++ logical and &amp; or operations (for conditionals)
++
++ %! %~
++ unary operations push(op pop())
++
++ %i add 1 to first two parameters (for ANSI terminals)
++
++ %? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
++ if-then-else, %e <EM>elsepart</EM> is optional. else-if's are
++ possible a la Algol 68:
++ %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
++ ci are conditions, bi are bodies.
+
+ Binary operations are in postfix form with the operands in
+ the usual order. That is, to get x-5 one would use
+@@ -1531,6 +1568,7 @@
+
+ <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
+@@ -1568,7 +1606,6 @@
+ ;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%;
+
+@@ -1622,170 +1659,168 @@
+ <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
+- function 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.
+-
+- 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
+- be specified as <STRONG>pln</STRONG>. Each of these strings takes two
+- parameters: the function key number to program (from 0 to
+- 10) and the string to program it with. Function key num-
+- bers out of this range may program undefined keys in a
+- terminal dependent manner. The difference between the
+- capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
+- to be the same as the user typing the given string; <STRONG>pfloc</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 transmit-
++ ted 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 forward/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 includ-
++ ing 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 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
++ be specified as <STRONG>pln</STRONG>. Each of these strings takes two
++ parameters: the function key number to program (from 0 to
++ 10) and the string to program it with. Function key num-
++ bers out of this range may program undefined keys in a
++ terminal dependent manner. The difference between the
++ capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
++ to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
+ causes the string to be executed by the terminal in local;
+- and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
++ and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
+ puter.
+
+ The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
+- grammable screen labels and their width and height. If
+- there are commands to turn the labels on and off, give
+- them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
++ grammable screen labels and their width and height. If
++ there are commands to turn the labels on and off, give
++ them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
+ 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
++ 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
+- 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 pre-
+- sent, since the user may not have the tab stops properly
+- set. If the terminal has hardware tabs which are ini-
++ 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 pre-
++ sent, since the user may not have the tab stops properly
++ set. If the terminal has hardware tabs which are ini-
+ tially set every <EM>n</EM> spaces when the terminal is powered up,
+- the numeric parameter <STRONG>it</STRONG> is given, showing the number of
+- spaces the tabs are set to. This is normally used by the
+- <EM>tset</EM> 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, the terminfo description can assume that
++ the numeric parameter <STRONG>it</STRONG> is given, showing the number of
++ spaces the tabs are set to. This is normally used by the
++ <EM>tset</EM> 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, the terminfo description can assume that
+ they are properly set.
+
+- Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
+- tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
+- program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
+- name of a file containing long initialization strings.
+- These strings are expected to set the terminal into modes
+- consistent with the rest of the terminfo description.
++ Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
++ tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
++ program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
++ name of a file containing long initialization strings.
++ These strings are expected to set the terminal into modes
++ consistent with the rest of the terminfo description.
+ They are normally sent to the terminal, by the <EM>init</EM> option
+- of the <EM>tput</EM> program, each time the user logs in. They
+- will be printed in the following order: run the program
+- <STRONG>iprog</STRONG>; output <STRONG>is1</STRONG>; <STRONG>is2</STRONG>; set the margins using <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG>
+- and <STRONG>smgr</STRONG>; set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the file <STRONG>if</STRONG>;
++ of the <EM>tput</EM> program, each time the user logs in. They
++ will be printed in the following order: run the program
++ <STRONG>iprog</STRONG>; output <STRONG>is1</STRONG>; <STRONG>is2</STRONG>; set the margins using <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG>
++ and <STRONG>smgr</STRONG>; set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the file <STRONG>if</STRONG>;
+ and finally output <STRONG>is3</STRONG>.
+
+- Most initialization is done with <STRONG>is2</STRONG>. Special terminal
++ Most initialization is done with <STRONG>is2</STRONG>. Special terminal
+ modes can be set up without duplicating strings by putting
+- the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
+- <STRONG>is3</STRONG>. A pair of sequences that does a harder reset from a
+- totally unknown state can be analogously given as <STRONG>rs1</STRONG>,
+- <STRONG>rs2</STRONG>, <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>. These strings
+- are output by the <EM>reset</EM> program, which is used when the
+- terminal gets into a wedged state. Commands are normally
+- placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoy-
+- ing effects on the screen and are not necessary when log-
+- ging in. For example, the command to set the vt100 into
+- 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
+- causes an annoying glitch of the screen and is not nor-
+- mally needed since the terminal is usually already in 80
++ the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
++ <STRONG>is3</STRONG>. A pair of sequences that does a harder reset from a
++ totally unknown state can be analogously given as <STRONG>rs1</STRONG>,
++ <STRONG>rs2</STRONG>, <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>. These strings
++ are output by the <EM>reset</EM> program, which is used when the
++ terminal gets into a wedged state. Commands are normally
++ placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoy-
++ ing effects on the screen and are not necessary when log-
++ ging in. For example, the command to set the vt100 into
++ 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
++ causes an annoying glitch of the screen and is not nor-
++ mally needed since the terminal is usually already in 80
+ column mode.
+
+ If there are commands to set and clear tab stops, they can
+- be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
+- stop in the current column of every row). If a more com-
+- plex sequence is needed to set the tabs than can be
+- described by this, the sequence can be placed in <STRONG>is2</STRONG> or
++ be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
++ stop in the current column of every row). If a more com-
++ plex sequence is needed to set the tabs than can be
++ described by this, the sequence can be placed in <STRONG>is2</STRONG> or
+ <STRONG>if</STRONG>.
+
+ <STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
+- Many older and slower terminals don't support either
++ Many older and slower terminals don't support either
+ XON/XOFF or DTR handshaking, including hard copy terminals
+- and some very archaic CRTs (including, for example, DEC
+- VT100s). These may require padding characters after cer-
++ and some very archaic CRTs (including, for example, DEC
++ VT100s). These may require padding characters after cer-
+ tain cursor motions and screen changes.
+
+ If the terminal uses xon/xoff handshaking for flow control
+- (that is, it automatically emits ^S back to the host when
++ (that is, it automatically emits ^S back to the host when
+ its input buffers are close to full), set <STRONG>xon</STRONG>. This capa-
+- bility suppresses the emission of padding. You can also
+- set it for memory-mapped console devices effectively that
+- don't have a speed limit. Padding information should
+- still be included so that routines can make better deci-
++ bility suppresses the emission of padding. You can also
++ set it for memory-mapped console devices effectively that
++ don't have a speed limit. Padding information should
++ still be included so that routines can make better deci-
+ sions about relative costs, but actual pad characters will
+ not be transmitted.
+
+- If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
+- at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
+- padding baud rate, then whether padding is emitted or not
++ If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
++ at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
++ padding baud rate, then whether padding is emitted or not
+ is completely controlled by <STRONG>xon</STRONG>.
+
+- If the terminal requires other than a null (zero) charac-
+- ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
++ If the terminal requires other than a null (zero) charac-
++ 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
+- normally used by software (and thus not counted in the
++ 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).
+
+- The simplest case is a status line which is cursor-
+- addressable but not part of the main scrolling region on
+- the screen; the Heathkit H19 has a status line of this
+- kind, as would a 24-line VT100 with a 23-line scrolling
+- region set up on initialization. This situation is indi-
++ The simplest case is a status line which is cursor-
++ addressable but not part of the main scrolling region on
++ the screen; the Heathkit H19 has a status line of this
++ kind, as would a 24-line VT100 with a 23-line scrolling
++ region set up on initialization. This situation is indi-
+ cated by the <STRONG>hs</STRONG> capability.
+
+ Some terminals with status lines need special sequences to
+- access the status line. These may be expressed as a
++ access the status line. These may be expressed as a
+ string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
+- a given zero-origin column on the status line. The capa-
++ a given zero-origin column on the status line. The capa-
+ bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
+- before the last <STRONG>tsl</STRONG>. You may need to embed the string
+- values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
++ before the last <STRONG>tsl</STRONG>. You may need to embed the string
++ values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
+ and <STRONG>fsl</STRONG> to accomplish this.
+
+- The status line is normally assumed to be the same width
+- as the width of the terminal. If this is untrue, you can
++ The status line is normally assumed to be the same width
++ as the width of the terminal. If this is untrue, you can
+ specify it with the numeric capability <STRONG>wsl</STRONG>.
+
+- A command to erase or blank the status line may be speci-
++ A command to erase or blank the status line may be speci-
+ fied as <STRONG>dsl</STRONG>.
+
+- The boolean capability <STRONG>eslok</STRONG> specifies that escape
++ 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>
+@@ -1803,6 +1838,7 @@
+ 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
+@@ -1823,59 +1859,59 @@
+ 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
++ 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
+- numeric argument each. Argument values 0-7 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 locations in
+- color space.
++ 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
++ 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
++ 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
+@@ -1887,6 +1923,21 @@
+ 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
++ to a different mapping, i.e.,
++ <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
++ black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
++ blue <STRONG>COLOR_BLUE</STRONG> 1 0,0,max
++ green <STRONG>COLOR_GREEN</STRONG> 2 0,max,0
++ cyan <STRONG>COLOR_CYAN</STRONG> 3 0,max,max
++ red <STRONG>COLOR_RED</STRONG> 4 max,0,0
++ 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
++ display.
++
+ On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
+ parameter to set which color pair is current.
+
+@@ -2005,7 +2056,6 @@
+ 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
+ be displayed should indicate <STRONG>hz</STRONG>.
+@@ -2055,6 +2105,7 @@
+ A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
+ the use reference that imports it, where <EM>xx</EM> is the capa-
+ bility. For example, the entry
++
+ 2621-nl, smkx@, rmkx@, use=2621,
+
+ defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
+@@ -2222,12 +2273,12 @@
+ descriptions
+
+
+-
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+
+
++
+ </PRE>
+ <H2>AUTHORS</H2><PRE>
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+@@ -2235,6 +2286,9 @@
+
+
+
++
++
++
+
+
+
+diff -urNd -urNd ncurses-5.3/doc/html/man/tic.1m.html ncurses-5.3.20030906.orig/doc/html/man/tic.1m.html
+--- ncurses-5.3/doc/html/man/tic.1m.html Sat Oct 12 18:28:15 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/tic.1m.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.33 2002/10/05 20:06:13 tom Exp @
++ * @Id: tic.1m,v 1.35 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -85,7 +85,7 @@
+ entries as user-defined names.
+
+ <STRONG>-C</STRONG> Force source translation to termcap format. Note:
+- this differs from the -C option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
++ 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
+ format. Capabilities that are not translatable are
+@@ -110,7 +110,7 @@
+ 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
+- require -I or -C.)
++ 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-
+@@ -277,7 +277,7 @@
+
+ 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 -c mode does not report bad use links.
++ 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-
+diff -urNd -urNd ncurses-5.3/doc/html/man/toe.1m.html ncurses-5.3.20030906.orig/doc/html/man/toe.1m.html
+--- ncurses-5.3/doc/html/man/toe.1m.html Sat Jun 22 16:25:46 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/toe.1m.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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.10 2000/08/19 18:51:05 tom Exp @
++ * @Id: toe.1m,v 1.12 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -57,7 +57,7 @@
+ primary name with descriptions. File arguments specify
+ the directories to be scanned; if no such arguments are
+ given, your default terminfo directory is scanned. If you
+- also specify the -h option, a directory header will be
++ also specify the <STRONG>-h</STRONG> option, a directory header will be
+ issued as each directory is entered.
+
+ There are other options intended for use by terminfo file
+diff -urNd -urNd ncurses-5.3/doc/html/man/tput.1.html ncurses-5.3.20030906.orig/doc/html/man/tput.1.html
+--- ncurses-5.3/doc/html/man/tput.1.html Sat Oct 12 18:28:16 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/tput.1.html Sun Jul 20 14:02:08 2003
+@@ -2,7 +2,7 @@
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.18 2002/10/12 13:53:20 tom Exp @
++ * @Id: tput.1,v 1.20 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+diff -urNd -urNd ncurses-5.3/doc/html/man/tset.1.html ncurses-5.3.20030906.orig/doc/html/man/tset.1.html
+--- ncurses-5.3/doc/html/man/tset.1.html Sat Jun 22 16:25:47 2002
++++ ncurses-5.3.20030906.orig/doc/html/man/tset.1.html Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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.12 2000/09/09 20:33:07 tom Exp @
++ * @Id: tset.1,v 1.13 2003/05/11 00:32:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -73,7 +73,7 @@
+ 4. The default terminal type, ``unknown''.
+
+ If the terminal type was not specified on the command-
+- line, the -m option mappings are then applied (see below
++ line, the <STRONG>-m</STRONG> option mappings are then applied (see below
+ for more information). Then, if the terminal type begins
+ with a question mark (``?''), the user is prompted for
+ confirmation of the terminal type. An empty response con-
+@@ -108,36 +108,36 @@
+
+ The options are as follows:
+
+- -q The terminal type is displayed to the standard out-
++ <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.
+
+- -e Set the erase character to <EM>ch</EM>.
++ <STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>.
+
+- -I Do not send the terminal or tab initialization
++ <STRONG>-I</STRONG> Do not send the terminal or tab initialization
+ strings to the terminal.
+
+- -Q Don't display any values for the erase, interrupt and
++ <STRONG>-Q</STRONG> Don't display any values for the erase, interrupt and
+ line kill characters.
+
+ <STRONG>-V</STRONG> reports the version of ncurses which was used in this
+ program, and exits.
+
+- -i Set the interrupt character to <EM>ch</EM>.
++ <STRONG>-i</STRONG> Set the interrupt character to <EM>ch</EM>.
+
+- -k Set the line kill character to <EM>ch</EM>.
++ <STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>.
+
+- -m Specify a mapping from a port type to a terminal.
++ <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
+ See below for more information.
+
+- -r Print the terminal type to the standard error output.
++ <STRONG>-r</STRONG> Print the terminal type to the standard error output.
+
+- -s Print the sequence of shell commands to initialize
++ <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
+ the environment variable <STRONG>TERM</STRONG> to the standard output.
+ See the section below on setting the environment for
+ details.
+
+- The arguments for the -e, -i, and -k options may either be
++ 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''.
+
+@@ -146,9 +146,9 @@
+ <H2>SETTING THE ENVIRONMENT</H2><PRE>
+ It is often desirable to enter the terminal type and
+ information about the terminal's capabilities into the
+- shell's environment. This is done using the -s option.
++ shell's environment. This is done using the <STRONG>-s</STRONG> option.
+
+- When the -s option is specified, the commands to enter the
++ 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
+@@ -171,12 +171,12 @@
+ often desirable to provide information about the type of
+ terminal used on such ports.
+
+- The purpose of the -m option is to map from some set of
++ 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
+ I'm on this port at a particular speed, guess that I'm on
+ that kind of terminal''.
+
+- The argument to the -m option consists of an optional port
++ 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
+ type. The port type is a string (delimited by either the
+@@ -189,7 +189,7 @@
+ terminal). The terminal type is a string.
+
+ If the terminal type is not specified on the command line,
+- the -m mappings are applied to the terminal type. If the
++ the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the
+ port type and baud rate match the mapping, the terminal
+ type specified in the mapping replaces the current type.
+ If more than one mapping is specified, the first applica-
+@@ -213,9 +213,9 @@
+ user will be queried on a default port as to whether they
+ are actually using an xterm terminal.
+
+- No whitespace characters are permitted in the -m option
++ No whitespace characters are permitted in the <STRONG>-m</STRONG> option
+ argument. Also, to avoid problems with meta-characters,
+- it is suggested that the entire -m option argument be
++ 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 (``!'').
+@@ -238,8 +238,8 @@
+ important use). This implementation behaves like 4.4BSD
+ tset, with a few exceptions specified here.
+
+- The -S option of BSD tset no longer works; it prints an
+- error message to stderr and dies. The -s option only sets
++ 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>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
+@@ -250,28 +250,28 @@
+ ning with an upper-case letter) set the terminal to use
+ upper-case only. This feature has been omitted.
+
+- The -A, -E, -h, -u and -v options were deleted from the
+- <STRONG>tset</STRONG> utility in 4.4BSD. None of them were documented in
+- 4.3BSD and all are of limited utility at best. The -a, -d,
+- and -p 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 -m option instead. The -n
+- option remains, but has no effect. The -adnp options are
+- therefore omitted from the usage summary above.
++ The <STRONG>-A</STRONG>, <STRONG>-E</STRONG>, <STRONG>-h</STRONG>, <STRONG>-u</STRONG> and <STRONG>-v</STRONG> options were deleted from the
++ <STRONG>tset</STRONG> utility in 4.4BSD. None of them were documented in
++ 4.3BSD and all are of limited utility at best. The <STRONG>-a</STRONG>, -,
++ and -
++ 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 <STRONG>-m</STRONG> option instead. The -n option
++ remains, but has no effect. The <STRONG>-adnp</STRONG> options are there-
++ fore omitted from the usage summary above.
+
+- It is still permissible to specify the -e, -i, and -k
+- options without arguments, although it is strongly recom-
+- mended that such usage be fixed to explicitly specify the
++ It is still permissible to specify the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG>
++ options without arguments, although it is strongly recom-
++ mended that such usage be fixed to explicitly specify the
+ character.
+
+- As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies
+- the -Q option. Also, the interaction between the - option
++ As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies
++ the <STRONG>-Q</STRONG> option. Also, the interaction between the - option
+ and the <EM>terminal</EM> argument in some historic implementations
+ of <STRONG>tset</STRONG> has been removed.
+
+
+-
+ </PRE>
+ <H2>ENVIRONMENT</H2><PRE>
+ The <STRONG>tset</STRONG> command uses the <STRONG>SHELL</STRONG> and <STRONG>TERM</STRONG> environment vari-
+@@ -281,7 +281,7 @@
+ </PRE>
+ <H2>FILES</H2><PRE>
+ /etc/ttys
+- system port name to terminal type mapping database
++ system port name to terminal type mapping database
+ (BSD versions only).
+
+ /usr/share/terminfo
+diff -urNd -urNd ncurses-5.3/form/Makefile.in ncurses-5.3.20030906.orig/form/Makefile.in
+--- ncurses-5.3/form/Makefile.in Sat Jan 19 19:49:17 2002
++++ ncurses-5.3.20030906.orig/form/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.36 2002/01/20 01:49:17 tom Exp $
++# $Id: Makefile.in,v 1.39 2003/08/23 23:25:01 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -55,6 +55,11 @@
+ includedir = @includedir@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
++LIBTOOL_INSTALL = @LIB_INSTALL@
++LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+
+ INSTALL = @INSTALL@
+ INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
+@@ -84,7 +89,7 @@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+-LINK = $(LIBTOOL) $(CC)
++LINK = $(LIBTOOL_LINK) $(CC)
+ LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
+
+ SHLIB_DIRS = -L../lib
+@@ -97,7 +102,7 @@
+ REL_VERSION = @cf_cv_rel_version@
+ ABI_VERSION = @cf_cv_abi_version@
+
+-RANLIB = @RANLIB@
++RANLIB = @LIB_PREP@
+
+ IMPORT_LIB = @IMPORT_LIB@
+ SHARED_LIB = @SHARED_LIB@
+diff -urNd -urNd ncurses-5.3/form/form.h ncurses-5.3.20030906.orig/form/form.h
+--- ncurses-5.3/form/form.h Sat Jul 13 06:35:08 2002
++++ ncurses-5.3.20030906.orig/form/form.h Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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,6 +31,8 @@
+ * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
+ ****************************************************************************/
+
++/* $Id: form.h,v 0.15 2003/05/03 21:59:32 tom Exp $ */
++
+ #ifndef FORM_H
+ #define FORM_H
+
+@@ -208,7 +210,7 @@
+ #define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */
+ #define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */
+ #define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */
+-#define REQ_DEL_WORD (KEY_MAX + 37) /* delete line at cursor */
++#define REQ_DEL_WORD (KEY_MAX + 37) /* delete word at cursor */
+ #define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */
+ #define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */
+ #define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */
+diff -urNd -urNd ncurses-5.3/form/frm_driver.c ncurses-5.3.20030906.orig/form/frm_driver.c
+--- ncurses-5.3/form/frm_driver.c Sat Jul 6 10:33:27 2002
++++ ncurses-5.3.20030906.orig/form/frm_driver.c Tue May 13 20:08:22 2003
+@@ -32,7 +32,7 @@
+ ****************************************************************************/
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_driver.c,v 1.39 2002/07/06 15:33:27 juergen Exp $")
++MODULE_ID("$Id: frm_driver.c,v 1.42 2003/05/03 23:05:21 tom Exp $")
+
+ /*----------------------------------------------------------------------------
+ This is the core module of the form library. It contains the majority
+@@ -42,7 +42,7 @@
+ all the functions in this module depends on some others in the module,
+ so it makes no sense to split them into separate files because they
+ will always be linked together. The only acceptable concern is turnaround
+- time for this module, but now we have all Pentiums or Riscs, so what!
++ time for this module, but now we have all Pentiums or RISCs, so what!
+
+ The driver routines are grouped into nine generic categories:
+
+@@ -55,10 +55,10 @@
+ c) Intra-Field Navigation ( all functions prefixed by IFN_ )
+ The current position in the current field is changed.
+ d) Vertical Scrolling ( all functions prefixed by VSC_ )
+- Esseantially this is a specialization of Intra-Field navigation.
++ Essentially this is a specialization of Intra-Field navigation.
+ It has to check for a multi-line field.
+ e) Horizontal Scrolling ( all functions prefixed by HSC_ )
+- Esseantially this is a specialization of Intra-Field navigation.
++ Essentially this is a specialization of Intra-Field navigation.
+ It has to check for a single-line field.
+ f) Field Editing ( all functions prefixed by FE_ )
+ The content of the current field is changed
+@@ -79,11 +79,11 @@
+
+ /*
+ Some options that may effect compatibility in behavior to SVr4 forms,
+-but they are here to allow a more intuitive and user friendly behaviour of
++but they are here to allow a more intuitive and user friendly behavior of
+ our form implementation. This doesn't affect the API, so we feel it is
+ uncritical.
+
+-The initial implementation tries to stay very close with the behaviour
++The initial implementation tries to stay very close with the behavior
+ of the original SVr4 implementation, although in some areas it is quite
+ clear that this isn't the most appropriate way. As far as possible this
+ sources will allow you to build a forms lib that behaves quite similar
+@@ -91,9 +91,9 @@
+ Perhaps at some time we will make this configurable at runtime.
+ */
+
+-/* Implement a more user-friendly previous/next word behaviour */
++/* Implement a more user-friendly previous/next word behavior */
+ #define FRIENDLY_PREV_NEXT_WORD (1)
+-/* Fix the wrong behaviour for forms with all fields inactive */
++/* Fix the wrong behavior for forms with all fields inactive */
+ #define FIX_FORM_INACTIVE_BUG (1)
+ /* Allow dynamic field growth also when navigating past the end */
+ #define GROW_IF_NAVIGATE (1)
+@@ -918,7 +918,7 @@
+ |
+ | Description : Propagate the Synchronize_Field function to all linked
+ | fields. The first error that occurs in the sequence
+-| of updates is the returnvalue.
++| of updates is the return value.
+ |
+ | Return Values : E_OK - success
+ | E_BAD_ARGUMENT - invalid field pointer
+@@ -1012,7 +1012,7 @@
+ |
+ | Description : If a fields options have changed, this routine is
+ | called to propagate these changes to the screen and
+-| to really change the behaviour of the field.
++| to really change the behavior of the field.
+ |
+ | Return Values : E_OK - success
+ | E_BAD_ARGUMENT - invalid field pointer
+@@ -1089,7 +1089,7 @@
+ (!single_line_field && (field->drows < field->maxgrow)))
+ {
+ field->status |= _MAY_GROW;
+- /* a field with justification now changes its behaviour,
++ /* a field with justification now changes its behavior,
+ so we must redisplay it */
+ if (single_line_field &&
+ (field->just != NO_JUSTIFICATION) &&
+@@ -2141,7 +2141,7 @@
+ int res = E_REQUEST_DENIED;
+
+ /* We have to deal here with the specific case of the overloaded
+- behaviour of New_Line and Delete_Previous requests.
++ behavior of New_Line and Delete_Previous requests.
+ They may end up in navigational requests if we are on the first
+ character in a field. But navigation is also allowed on non-
+ editable fields.
+@@ -2205,6 +2205,7 @@
+ {
+ if (!(form->opts & O_NL_OVERLOAD))
+ return(E_REQUEST_DENIED);
++ wmove(form->w,form->currow,form->curcol);
+ wclrtoeol(form->w);
+ /* we have to set this here, although it is also
+ handled in the generic routine. The reason is,
+@@ -2221,6 +2222,7 @@
+ a single-line field */
+ return(E_SYSTEM_ERROR);
+ }
++ wmove(form->w,form->currow,form->curcol);
+ wclrtoeol(form->w);
+ form->currow++;
+ form->curcol = 0;
+@@ -2248,6 +2250,7 @@
+
+ bp= Address_Of_Current_Position_In_Buffer(form);
+ t = After_End_Of_Data(bp,field->dcols - form->curcol);
++ wmove(form->w,form->currow,form->curcol);
+ wclrtoeol(form->w);
+ form->currow++;
+ form->curcol=0;
+@@ -2338,6 +2341,7 @@
+ +--------------------------------------------------------------------------*/
+ static int FE_Delete_Character(FORM * form)
+ {
++ wmove(form->w,form->currow,form->curcol);
+ wdelch(form->w);
+ return E_OK;
+ }
+@@ -2378,6 +2382,7 @@
+ if ((int)(this_end-this_line) >
+ (field->cols-(int)(prev_end-prev_line)))
+ return E_REQUEST_DENIED;
++ wmove(form->w,form->currow,form->curcol);
+ wdeleteln(form->w);
+ Adjust_Cursor_Position(form,prev_end);
+ wmove(form->w,form->currow,form->curcol);
+@@ -2455,20 +2460,22 @@
+ +--------------------------------------------------------------------------*/
+ static int FE_Clear_To_End_Of_Line(FORM * form)
+ {
++ wmove(form->w,form->currow,form->curcol);
+ wclrtoeol(form->w);
+ return E_OK;
+ }
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+-| Function : static int FE_Clear_To_End_Of_Form(FORM * form)
++| Function : static int FE_Clear_To_End_Of_Field(FORM * form)
+ |
+-| Description : Clear to end of form.
++| Description : Clear to end of field.
+ |
+ | Return Values : E_OK - success
+ +--------------------------------------------------------------------------*/
+-static int FE_Clear_To_End_Of_Form(FORM * form)
++static int FE_Clear_To_End_Of_Field(FORM * form)
+ {
++ wmove(form->w,form->currow,form->curcol);
+ wclrtobot(form->w);
+ return E_OK;
+ }
+@@ -3053,7 +3060,7 @@
+ | int (* const fct) (FORM *),
+ | FORM * form)
+ |
+-| Description : Generic behaviour for changing the current field, the
++| Description : Generic behavior for changing the current field, the
+ | field is left and a new field is entered. So the field
+ | must be validated and the field init/term hooks must
+ | be called.
+@@ -3366,7 +3373,7 @@
+ | int (* const fct) (FORM *),
+ | FORM * form)
+ |
+-| Description : Generic behaviour for changing a page. This means
++| Description : Generic behavior for changing a page. This means
+ | that the field is left and a new field is entered.
+ | So the field must be validated and the field init/term
+ | hooks must be called. Because also the page is changed,
+@@ -3598,7 +3605,7 @@
+ { REQ_DEL_LINE |ID_FE ,FE_Delete_Line},
+ { REQ_DEL_WORD |ID_FE ,FE_Delete_Word},
+ { REQ_CLR_EOL |ID_FE ,FE_Clear_To_End_Of_Line},
+- { REQ_CLR_EOF |ID_FE ,FE_Clear_To_End_Of_Form},
++ { REQ_CLR_EOF |ID_FE ,FE_Clear_To_End_Of_Field},
+ { REQ_CLR_FIELD |ID_FE ,FE_Clear_Field},
+
+ { REQ_OVL_MODE |ID_EM ,EM_Overlay_Mode},
+diff -urNd -urNd ncurses-5.3/include/MKkey_defs.sh ncurses-5.3.20030906.orig/include/MKkey_defs.sh
+--- ncurses-5.3/include/MKkey_defs.sh Sat Sep 28 18:32:16 2002
++++ ncurses-5.3.20030906.orig/include/MKkey_defs.sh Tue May 13 20:08:22 2003
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+-# $Id: MKkey_defs.sh,v 1.10 2002/09/28 23:32:16 tom Exp $
++# $Id: MKkey_defs.sh,v 1.11 2003/01/11 22:20:40 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 2001-2002,2003 Free 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"), #
+@@ -49,10 +49,10 @@
+ if sort -k 6 $DATA >$data 2>/dev/null
+ then
+ # POSIX
+- sed -e 's/[ ]\+/ /g' < $DATA |sort -n -k 6 >$data
++ sed -e 's/[ ][ ]*/ /g' < $DATA |sort -n -k 6 >$data
+ else
+ # SunOS (and SVr4, marked as obsolete but still recognized)
+- sed -e 's/[ ]\+/ /g' < $DATA |sort -n +5 >$data
++ sed -e 's/[ ][ ]*/ /g' < $DATA |sort -n +5 >$data
+ fi
+
+ # add keys that we generate automatically:
+diff -urNd -urNd ncurses-5.3/include/curses.h.in ncurses-5.3.20030906.orig/include/curses.h.in
+--- ncurses-5.3/include/curses.h.in Sat Sep 28 10:08:06 2002
++++ ncurses-5.3.20030906.orig/include/curses.h.in Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.134 2002/09/28 15:08:06 tom Exp $ */
++/* $Id: curses.h.in,v 1.145 2003/06/15 23:42:18 tom Exp $ */
+
+ #ifndef __NCURSES_H
+ #define __NCURSES_H
+@@ -125,7 +125,7 @@
+
+ typedef @cf_cv_type_of_bool@ NCURSES_BOOL;
+
+-#if (!defined(__cplusplus) || !@cf_cv_builtin_bool@) && (!@cf_cv_cc_bool_type@)
++#if @USE_CXX_BOOL@ /* !__cplusplus, etc. */
+
+ #if @cf_cv_header_stdbool_h@
+ #include <stdbool.h>
+@@ -136,7 +136,7 @@
+ #if @cf_cv_header_stdbool_h@
+ #define bool NCURSES_BOOL
+ #else
+-typedef @cf_cv_type_of_bool@ bool;
++typedef NCURSES_BOOL bool;
+ #endif
+
+ #endif /* !__cplusplus, etc. */
+@@ -189,45 +189,47 @@
+ extern NCURSES_EXPORT_VAR(chtype) acs_map[];
+ #endif
+
++#define NCURSES_ACS(c) (acs_map[(unsigned char)c])
++
+ /* VT100 symbols begin here */
+-#define ACS_ULCORNER (acs_map['l']) /* upper left corner */
+-#define ACS_LLCORNER (acs_map['m']) /* lower left corner */
+-#define ACS_URCORNER (acs_map['k']) /* upper right corner */
+-#define ACS_LRCORNER (acs_map['j']) /* lower right corner */
+-#define ACS_LTEE (acs_map['t']) /* tee pointing right */
+-#define ACS_RTEE (acs_map['u']) /* tee pointing left */
+-#define ACS_BTEE (acs_map['v']) /* tee pointing up */
+-#define ACS_TTEE (acs_map['w']) /* tee pointing down */
+-#define ACS_HLINE (acs_map['q']) /* horizontal line */
+-#define ACS_VLINE (acs_map['x']) /* vertical line */
+-#define ACS_PLUS (acs_map['n']) /* large plus or crossover */
+-#define ACS_S1 (acs_map['o']) /* scan line 1 */
+-#define ACS_S9 (acs_map['s']) /* scan line 9 */
+-#define ACS_DIAMOND (acs_map['`']) /* diamond */
+-#define ACS_CKBOARD (acs_map['a']) /* checker board (stipple) */
+-#define ACS_DEGREE (acs_map['f']) /* degree symbol */
+-#define ACS_PLMINUS (acs_map['g']) /* plus/minus */
+-#define ACS_BULLET (acs_map['~']) /* bullet */
++#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */
++#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */
++#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */
++#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */
++#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */
++#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */
++#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */
++#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */
++#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */
++#define ACS_VLINE NCURSES_ACS('x') /* vertical line */
++#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */
++#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */
++#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */
++#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */
++#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */
++#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */
++#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */
++#define ACS_BULLET NCURSES_ACS('~') /* bullet */
+ /* Teletype 5410v1 symbols begin here */
+-#define ACS_LARROW (acs_map[',']) /* arrow pointing left */
+-#define ACS_RARROW (acs_map['+']) /* arrow pointing right */
+-#define ACS_DARROW (acs_map['.']) /* arrow pointing down */
+-#define ACS_UARROW (acs_map['-']) /* arrow pointing up */
+-#define ACS_BOARD (acs_map['h']) /* board of squares */
+-#define ACS_LANTERN (acs_map['i']) /* lantern symbol */
+-#define ACS_BLOCK (acs_map['0']) /* solid square block */
++#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */
++#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */
++#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */
++#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */
++#define ACS_BOARD NCURSES_ACS('h') /* board of squares */
++#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */
++#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */
+ /*
+ * These aren't documented, but a lot of System Vs have them anyway
+ * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings).
+ * The ACS_names may not match AT&T's, our source didn't know them.
+ */
+-#define ACS_S3 (acs_map['p']) /* scan line 3 */
+-#define ACS_S7 (acs_map['r']) /* scan line 7 */
+-#define ACS_LEQUAL (acs_map['y']) /* less/equal */
+-#define ACS_GEQUAL (acs_map['z']) /* greater/equal */
+-#define ACS_PI (acs_map['{']) /* Pi */
+-#define ACS_NEQUAL (acs_map['|']) /* not equal */
+-#define ACS_STERLING (acs_map['}']) /* UK pound sign */
++#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */
++#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */
++#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */
++#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */
++#define ACS_PI NCURSES_ACS('{') /* Pi */
++#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */
++#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */
+
+ /*
+ * Line drawing ACS names are of the form ACS_trbl, where t is the top, r
+@@ -286,20 +288,19 @@
+ #undef mblen
+ #endif
+ #include <libutf8.h>
+-#define _WCHAR_T
+-#define _WINT_T
+ #endif
+
+-#if @NCURSES_MBSTATE_T@
++#if @NEED_WCHAR_H@
+ #include <wchar.h> /* ...to get mbstate_t, etc. */
+ #endif
+
+-#ifndef _WCHAR_T
+-typedef unsigned long wchar_t;
+-#endif /* _WCHAR_T */
+-#ifndef _WINT_T
+-typedef long int wint_t;
+-#endif /* _WINT_T */
++#if @NCURSES_WCHAR_T@
++typedef unsigned short wchar_t@NCURSES_OK_WCHAR_T@;
++#endif
++
++#if @NCURSES_WINT_T@
++typedef unsigned int wint_t@NCURSES_OK_WCHAR_T@;
++#endif
+
+ #define CCHARW_MAX 5
+ typedef struct
+@@ -388,7 +389,8 @@
+ extern NCURSES_EXPORT(char *) keybound (int, int);
+ extern NCURSES_EXPORT(const char *) curses_version (void);
+ extern NCURSES_EXPORT(int) assume_default_colors (int, int);
+-extern NCURSES_EXPORT(int) define_key (char *, int);
++extern NCURSES_EXPORT(int) define_key (const char *, int);
++extern NCURSES_EXPORT(int) key_defined (const char *);
+ extern NCURSES_EXPORT(int) keyok (int, bool);
+ extern NCURSES_EXPORT(int) resize_term (int, int);
+ extern NCURSES_EXPORT(int) resizeterm (int, int);
+@@ -451,24 +453,14 @@
+ * GCC (and some other compilers) define '__attribute__'; we're using this
+ * macro to alert the compiler to flag inconsistencies in printf/scanf-like
+ * function calls. Just in case '__attribute__' isn't defined, make a dummy.
+- * G++ doesn't accept it anyway.
++ * Old versions of G++ do not accept it anyway, at least not consistently with
++ * GCC.
+ */
+-#if !defined(__GNUC__) && !defined(__attribute__)
++#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__))
+ #define __attribute__(p) /* nothing */
+ #endif
+
+ /*
+- * For g++, turn off our macros that use __attribute__ (g++ recognizes some
+- * of them, but not at the same version levels as gcc).
+- */
+-#ifdef __cplusplus
+-#undef GCC_NORETURN
+-#undef GCC_PRINTF
+-#undef GCC_SCANF
+-#undef GCC_UNUSED
+-#endif
+-
+-/*
+ * We cannot define these in ncurses_cfg.h, since they require parameters to be
+ * passed (that's non-portable).
+ */
+@@ -609,7 +601,7 @@
+ extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */
+ extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */
+ extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */
+-extern NCURSES_EXPORT(int) mvprintw (int,int, NCURSES_CONST char *,...) /* implemented */
++extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */
+ GCC_PRINTFLIKE(3,4);
+ extern NCURSES_EXPORT(int) mvscanw (int,int, NCURSES_CONST char *,...) /* implemented */
+ GCC_SCANFLIKE(3,4);
+@@ -634,7 +626,7 @@
+ extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */
+ extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */
+ extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */
+-extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, NCURSES_CONST char *,...) /* implemented */
++extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */
+ GCC_PRINTFLIKE(4,5);
+ extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, NCURSES_CONST char *,...) /* implemented */
+ GCC_SCANFLIKE(4,5);
+@@ -658,7 +650,7 @@
+ extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */
+ extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */
+ extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */
+-extern NCURSES_EXPORT(int) printw (NCURSES_CONST char *,...) /* implemented */
++extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */
+ GCC_PRINTFLIKE(1,2);
+ extern NCURSES_EXPORT(int) putp (const char *); /* implemented */
+ extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */
+@@ -720,8 +712,8 @@
+ extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */
+ extern NCURSES_EXPORT(int) vidputs (chtype, int (*)(int)); /* implemented */
+ extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */
+-extern NCURSES_EXPORT(int) vwprintw (WINDOW *, NCURSES_CONST char *,va_list); /* implemented */
+-extern NCURSES_EXPORT(int) vw_printw (WINDOW *, NCURSES_CONST char *,va_list); /* generated */
++extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *,va_list); /* implemented */
++extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *,va_list); /* generated */
+ extern NCURSES_EXPORT(int) vwscanw (WINDOW *, NCURSES_CONST char *,va_list); /* implemented */
+ extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, NCURSES_CONST char *,va_list); /* generated */
+ extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */
+@@ -765,7 +757,7 @@
+ extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */
+ extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */
+ extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */
+-extern NCURSES_EXPORT(int) wprintw (WINDOW *, NCURSES_CONST char *,...) /* implemented */
++extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */
+ GCC_PRINTFLIKE(2,3);
+ extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */
+ extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */
+@@ -831,10 +823,11 @@
+ #define nocrmode() nocbreak()
+ #define gettmode()
+
+-#define getyx(win,y,x) (y = (win)?(win)->_cury:ERR, x = (win)?(win)->_curx:ERR)
+-#define getbegyx(win,y,x) (y = (win)?(win)->_begy:ERR, x = (win)?(win)->_begx:ERR)
+-#define getmaxyx(win,y,x) (y = (win)?((win)->_maxy + 1):ERR, x = (win)?((win)->_maxx + 1):ERR)
+-#define getparyx(win,y,x) (y = (win)?(win)->_pary:ERR, x = (win)?(win)->_parx:ERR)
++#define getyx(win,y,x) (y = getcury(win), x = getcurx(win))
++#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win))
++#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win))
++#define getparyx(win,y,x) (y = getpary(win), x = getparx(win))
++
+ #define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
+ else getyx(newscr,(y),(x)); \
+ } while(0)
+diff -urNd -urNd ncurses-5.3/include/curses.tail ncurses-5.3.20030906.orig/include/curses.tail
+--- ncurses-5.3/include/curses.tail Sat Oct 12 10:46:02 2002
++++ ncurses-5.3.20030906.orig/include/curses.tail Tue May 13 20:08:22 2003
+@@ -1,4 +1,4 @@
+-/* $Id: curses.tail,v 1.7 2002/10/12 15:46:02 tom Exp $ */
++/* $Id: curses.tail,v 1.8 2002/11/02 20:26:26 tom Exp $ */
+
+ /* mouse interface */
+ #define NCURSES_MOUSE_VERSION 1
+@@ -121,10 +121,6 @@
+ #define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */
+ #endif
+
+-#ifndef NCURSES_WGETCH_EVENTS
+-#undef KEY_EVENT
+-#endif
+-
+ #ifdef __cplusplus
+
+ /* these names conflict with STL */
+diff -urNd -urNd ncurses-5.3/include/curses.wide ncurses-5.3.20030906.orig/include/curses.wide
+--- ncurses-5.3/include/curses.wide Sat Aug 31 12:48:53 2002
++++ ncurses-5.3.20030906.orig/include/curses.wide Sun Jul 20 14:02:08 2003
+@@ -1,21 +1,23 @@
+
+ #ifdef _XOPEN_SOURCE_EXTENDED
+
+-/* $Id: curses.wide,v 1.25 2002/08/31 17:48:53 tom Exp $ */
++/* $Id: curses.wide,v 1.27 2003/06/07 21:59:37 tom Exp $ */
+
+ extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
+
+-#define WACS_BSSB (&_nc_wacs['l'])
+-#define WACS_SSBB (&_nc_wacs['m'])
+-#define WACS_BBSS (&_nc_wacs['k'])
+-#define WACS_SBBS (&_nc_wacs['j'])
+-#define WACS_SBSS (&_nc_wacs['u'])
+-#define WACS_SSSB (&_nc_wacs['t'])
+-#define WACS_SSBS (&_nc_wacs['v'])
+-#define WACS_BSSS (&_nc_wacs['w'])
+-#define WACS_BSBS (&_nc_wacs['q'])
+-#define WACS_SBSB (&_nc_wacs['x'])
+-#define WACS_SSSS (&_nc_wacs['n'])
++#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
++
++#define WACS_BSSB NCURSES_WACS('l')
++#define WACS_SSBB NCURSES_WACS('m')
++#define WACS_BBSS NCURSES_WACS('k')
++#define WACS_SBBS NCURSES_WACS('j')
++#define WACS_SBSS NCURSES_WACS('u')
++#define WACS_SSSB NCURSES_WACS('t')
++#define WACS_SSBS NCURSES_WACS('v')
++#define WACS_BSSS NCURSES_WACS('w')
++#define WACS_BSBS NCURSES_WACS('q')
++#define WACS_SBSB NCURSES_WACS('x')
++#define WACS_SSSS NCURSES_WACS('n')
+
+ #define WACS_ULCORNER WACS_BSSB
+ #define WACS_LLCORNER WACS_SSBB
+@@ -29,31 +31,31 @@
+ #define WACS_VLINE WACS_SBSB
+ #define WACS_PLUS WACS_SSSS
+
+-#define WACS_S1 (&_nc_wacs['o']) /* scan line 1 */
+-#define WACS_S9 (&_nc_wacs['s']) /* scan line 9 */
+-#define WACS_DIAMOND (&_nc_wacs['`']) /* diamond */
+-#define WACS_CKBOARD (&_nc_wacs['a']) /* checker board */
+-#define WACS_DEGREE (&_nc_wacs['f']) /* degree symbol */
+-#define WACS_PLMINUS (&_nc_wacs['g']) /* plus/minus */
+-#define WACS_BULLET (&_nc_wacs['~']) /* bullet */
++#define WACS_S1 NCURSES_WACS('o') /* scan line 1 */
++#define WACS_S9 NCURSES_WACS('s') /* scan line 9 */
++#define WACS_DIAMOND NCURSES_WACS('`') /* diamond */
++#define WACS_CKBOARD NCURSES_WACS('a') /* checker board */
++#define WACS_DEGREE NCURSES_WACS('f') /* degree symbol */
++#define WACS_PLMINUS NCURSES_WACS('g') /* plus/minus */
++#define WACS_BULLET NCURSES_WACS('~') /* bullet */
+
+ /* Teletype 5410v1 symbols */
+-#define WACS_LARROW (&_nc_wacs[',']) /* arrow left */
+-#define WACS_RARROW (&_nc_wacs['+']) /* arrow right */
+-#define WACS_DARROW (&_nc_wacs['.']) /* arrow down */
+-#define WACS_UARROW (&_nc_wacs['-']) /* arrow up */
+-#define WACS_BOARD (&_nc_wacs['h']) /* board of squares */
+-#define WACS_LANTERN (&_nc_wacs['i']) /* lantern symbol */
+-#define WACS_BLOCK (&_nc_wacs['0']) /* solid square block */
++#define WACS_LARROW NCURSES_WACS(',') /* arrow left */
++#define WACS_RARROW NCURSES_WACS('+') /* arrow right */
++#define WACS_DARROW NCURSES_WACS('.') /* arrow down */
++#define WACS_UARROW NCURSES_WACS('-') /* arrow up */
++#define WACS_BOARD NCURSES_WACS('h') /* board of squares */
++#define WACS_LANTERN NCURSES_WACS('i') /* lantern symbol */
++#define WACS_BLOCK NCURSES_WACS('0') /* solid square block */
+
+ /* ncurses extensions */
+-#define WACS_S3 (&_nc_wacs['p']) /* scan line 3 */
+-#define WACS_S7 (&_nc_wacs['r']) /* scan line 7 */
+-#define WACS_LEQUAL (&_nc_wacs['y']) /* less/equal */
+-#define WACS_GEQUAL (&_nc_wacs['z']) /* greater/equal */
+-#define WACS_PI (&_nc_wacs['{']) /* Pi */
+-#define WACS_NEQUAL (&_nc_wacs['|']) /* not equal */
+-#define WACS_STERLING (&_nc_wacs['}']) /* UK pound sign */
++#define WACS_S3 NCURSES_WACS('p') /* scan line 3 */
++#define WACS_S7 NCURSES_WACS('r') /* scan line 7 */
++#define WACS_LEQUAL NCURSES_WACS('y') /* less/equal */
++#define WACS_GEQUAL NCURSES_WACS('z') /* greater/equal */
++#define WACS_PI NCURSES_WACS('{') /* Pi */
++#define WACS_NEQUAL NCURSES_WACS('|') /* not equal */
++#define WACS_STERLING NCURSES_WACS('}') /* UK pound sign */
+
+ /*
+ * Function prototypes for wide-character operations.
+@@ -129,7 +131,7 @@
+ 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 *); /* missing */
+ extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *); /* implemented */
+-extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* missing */
++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 */
+diff -urNd -urNd ncurses-5.3/include/ncurses_defs ncurses-5.3.20030906.orig/include/ncurses_defs
+--- ncurses-5.3/include/ncurses_defs Sat Aug 24 18:13:43 2002
++++ ncurses-5.3.20030906.orig/include/ncurses_defs Sun Jul 20 14:02:09 2003
+@@ -1,6 +1,6 @@
+-# $Id: ncurses_defs,v 1.15 2002/08/24 23:13:43 tom Exp $
++# $Id: ncurses_defs,v 1.18 2003/07/05 15:14:30 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2000-2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 2000-2002,2003 Free 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"), #
+@@ -45,6 +45,7 @@
+ GCC_UNUSED /* nothing */
+ HAVE_BIG_CORE
+ HAVE_BSD_CGETENT
++HAVE_BTOWC
+ HAVE_BUILTIN_H
+ HAVE_DIRENT_H
+ HAVE_ERRNO
+@@ -72,6 +73,7 @@
+ HAVE_LINK
+ HAVE_LOCALE_H
+ HAVE_LONG_FILE_NAMES
++HAVE_MBTOWC
+ HAVE_MEMCCPY
+ HAVE_MENU_H
+ HAVE_MKSTEMP
+@@ -81,6 +83,7 @@
+ HAVE_POLL
+ HAVE_POLL_H
+ HAVE_PURIFY
++HAVE_PUTWC
+ HAVE_REGEXPR_H_FUNCS
+ HAVE_REGEXP_H_FUNCS
+ HAVE_REGEX_H_FUNCS
+@@ -93,6 +96,7 @@
+ HAVE_SIGACTION
+ HAVE_SIGVEC
+ HAVE_SIZECHANGE
++HAVE_SLK_COLOR
+ HAVE_STRDUP
+ HAVE_STRSTR
+ HAVE_SYMLINK
+@@ -121,6 +125,8 @@
+ HAVE_VFSCANF
+ HAVE_VSNPRINTF
+ HAVE_VSSCANF
++HAVE_WCTOB
++HAVE_WCTOMB
+ HAVE_WORKING_POLL
+ HAVE_WRESIZE
+ HAVE__DOSCAN
+@@ -160,6 +166,7 @@
+ USE_STRSTREAM_VSCAN
+ USE_STRSTREAM_VSCAN_CAST
+ USE_SYMLINKS
++USE_SYSMOUSE
+ USE_TERMCAP
+ USE_WIDEC_SUPPORT
+ USE_XMC_SUPPORT
+diff -urNd -urNd ncurses-5.3/include/ncurses_dll.h ncurses-5.3.20030906.orig/include/ncurses_dll.h
+--- ncurses-5.3/include/ncurses_dll.h Sat Dec 8 19:36:34 2001
++++ ncurses-5.3.20030906.orig/include/ncurses_dll.h Sun Jul 20 14:02:09 2003
+@@ -1,10 +1,14 @@
+-/* $Id: ncurses_dll.h,v 1.2 2001/12/09 01:36:34 tom Exp $ */
++/* $Id: ncurses_dll.h,v 1.4 2003/07/19 18:44:32 Charles.Wilson Exp $ */
+
+ #ifndef NCURSES_DLL_H_incl
+ #define NCURSES_DLL_H_incl 1
+
+-#undef NCURSES_DLL /* cygwin dll not implemented */
+-#define NCURSES_STATIC /* cygwin dll not implemented */
++/* no longer needed on cygwin or mingw, thanks to auto-import */
++/* but this structure may be useful at some point for an MSVC build */
++/* so, for now unconditionally define the important flags */
++/* "the right way" for proper static and dll+auto-import behavior */
++#undef NCURSES_DLL
++#define NCURSES_STATIC
+
+ #if defined(__CYGWIN__)
+ # if defined(NCURSES_DLL)
+@@ -14,8 +18,8 @@
+ # endif
+ # undef NCURSES_IMPEXP
+ # undef NCURSES_API
+-# undef NCURSES_EXPORT(type)
+-# undef NCURSES_EXPORT_VAR(type)
++# undef NCURSES_EXPORT
++# undef NCURSES_EXPORT_VAR
+ # if defined(NCURSES_DLL)
+ /* building a DLL */
+ # define NCURSES_IMPEXP __declspec(dllexport)
+diff -urNd -urNd ncurses-5.3/include/tic.h ncurses-5.3.20030906.orig/include/tic.h
+--- ncurses-5.3/include/tic.h Sat Oct 12 10:46:15 2002
++++ ncurses-5.3.20030906.orig/include/tic.h Fri Sep 12 16:41:41 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2003 Free 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 @@
+ ****************************************************************************/
+
+ /*
+- * $Id: tic.h,v 1.42 2002/10/12 15:46:15 tom Exp $
++ * $Id: tic.h,v 1.45 2003/08/02 23:54:19 tom Exp $
+ * tic.h - Global variables and structures for the terminfo
+ * compiler.
+ */
+@@ -203,8 +203,6 @@
+ const char *source;
+ };
+
+-extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
+-
+ extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
+ extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
+
+@@ -217,7 +215,7 @@
+ #define NOTFOUND ((struct name_table_entry *) 0)
+
+ /* out-of-band values for representing absent capabilities */
+-#define ABSENT_BOOLEAN (-1) /* 255 */
++#define ABSENT_BOOLEAN (char)(-1) /* 255 */
+ #define ABSENT_NUMERIC (-1)
+ #define ABSENT_STRING (char *)0
+
+@@ -241,6 +239,7 @@
+ #endif
+
+ /* access.c */
++extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *);
+ extern NCURSES_EXPORT(char *) _nc_basename (char *);
+ extern NCURSES_EXPORT(char *) _nc_rootname (char *);
+
+@@ -284,6 +283,13 @@
+ extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const);
+ extern NCURSES_EXPORT(char *) _nc_infotocap (const char *, const char *, int const);
+
++/* lib_tparm.c */
++#define NUM_PARM 9
++
++extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
++
++extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount);
++
+ /* lib_tputs.c */
+ extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */
+
+diff -urNd -urNd ncurses-5.3/man/MKterminfo.sh ncurses-5.3.20030906.orig/man/MKterminfo.sh
+--- ncurses-5.3/man/MKterminfo.sh Sat Jun 29 15:04:28 2002
++++ ncurses-5.3.20030906.orig/man/MKterminfo.sh Tue May 13 20:08:22 2003
+@@ -1,10 +1,10 @@
+ #!/bin/sh
+-# $Id: MKterminfo.sh,v 1.10 2002/06/29 20:04:28 tom Exp $
++# $Id: MKterminfo.sh,v 1.12 2003/01/11 21:42:12 tom Exp $
+ #
+ # MKterminfo.sh -- generate terminfo.5 from Caps tabular data
+ #
+ #***************************************************************************
+-# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++# Copyright (c) 1998,2002,2003 Free 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,11 +69,11 @@
+
+ sed -n <$caps "\
+ /%%-STOP-HERE-%%/q
+-/^#%/s///p
++/^#%/s/#%//p
+ /^#/d
+-s/[ ]\+/ /g
++s/[ ][ ]*/ /g
+ s/$/T}/
+-s/ [A-Z0-9_()\-]\+ [0-9\-]\+ [Y\-][B\-][C\-][G\-][EK\-]\** / T{/
++s/ [A-Z0-9_()\-][A-Z0-9_()\-]* [0-9\-][0-9\-]* [Y\-][B\-][C\-][G\-][EK\-]\** / T{/
+ s/ bool / /p
+ s/ num / /p
+ s/ str / /p
+diff -urNd -urNd ncurses-5.3/man/captoinfo.1m ncurses-5.3.20030906.orig/man/captoinfo.1m
+--- ncurses-5.3/man/captoinfo.1m Sat Aug 12 20:56:49 2000
++++ ncurses-5.3.20030906.orig/man/captoinfo.1m Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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,14 +27,14 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: captoinfo.1m,v 1.16 2000/08/13 01:56:49 tom Exp $
++.\" $Id: captoinfo.1m,v 1.17 2003/05/11 00:32:53 tom Exp $
+ .TH captoinfo 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+ \fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
+ .SH SYNOPSIS
+-\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
++\fBcaptoinfo\fR [\fB\-v\fR\fIn\fR \fIwidth\fR] [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR . . .
+ .SH DESCRIPTION
+ \fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions. For each
+ one found, an equivalent \fBterminfo\fR description is written to standard
+@@ -47,18 +47,18 @@
+ extracted from that file. If the environment variable \fBTERMCAP\fR is not
+ set, then the file \fB\*d\fR is read.
+ .TP 5
+-\fB-v\fR
++\fB\-v\fR
+ print out tracing information on standard error as the program runs.
+ .TP 5
+-\fB-V\fR
++\fB\-V\fR
+ print out the version of the program in use on standard error and exit.
+ .TP 5
+-\fB-1\fR
++\fB\-1\fR
+ cause the fields to print out one to a line. Otherwise, the fields
+ will be printed several to a line to a maximum width of 60
+ characters.
+ .TP 5
+-\fB-w\fR
++\fB\-w\fR
+ change the output to \fIwidth\fR characters.
+ .SH FILES
+ .TP 20
+@@ -172,11 +172,11 @@
+ capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
+ These will be discarded with a warning message.
+ .SH NOTES
+-This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
+-You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
++This utility is actually a link to \fItic\fR(1M), running in \fI\-I\fR mode.
++You can use other \fItic\fR options such as \fB\-f\fR and \fB\-x\fR.
+
+ The trace option isn't identical to SVr4's. Under SVr4, instead of following
+-the -v with a trace level n, you repeat it n times.
++the \fB\-v\fR with a trace level n, you repeat it n times.
+ .SH SEE ALSO
+ \fBcurses\fR(3X), \fB@INFOCMP@\fR(1M), \fBterminfo\fR(\*n)
+ .SH AUTHOR
+diff -urNd -urNd ncurses-5.3/man/curs_addch.3x ncurses-5.3.20030906.orig/man/curs_addch.3x
+--- ncurses-5.3/man/curs_addch.3x Sat Aug 10 17:12:36 2002
++++ ncurses-5.3.20030906.orig/man/curs_addch.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_addch.3x,v 1.20 2002/08/10 22:12:36 tom Exp $
++.\" $Id: curs_addch.3x,v 1.21 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_addch 3X ""
+ .SH NAME
+ \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
+@@ -62,7 +62,7 @@
+ edge of a window it does nothing.
+ Newline does a \fBclrtoeol\fR,
+ then moves the cursor to the window left margin on the next line,
+-scrolling the window if on the last line).
++scrolling the window if on the last line.
+ Tabs are considered to be at every eighth column.
+ The tab interval may be altered by setting the \fBTABSIZE\fR variable.
+
+@@ -74,7 +74,7 @@
+ Video attributes can be combined with a character argument passed to
+ \fBaddch\fR or related functions by logical-ORing them into the character.
+ (Thus, text, including attributes, can be copied from one place to another
+-using \fBinch\fR and \fBaddch\fR.). See the \fBcurs_attr\fR(3X) page for
++using \fBinch\fR and \fBaddch\fR.) See the \fBcurs_attr\fR(3X) page for
+ values of predefined video attribute constants that can be usefully OR'ed
+ into characters.
+
+diff -urNd -urNd ncurses-5.3/man/curs_beep.3x ncurses-5.3.20030906.orig/man/curs_beep.3x
+--- ncurses-5.3/man/curs_beep.3x Wed Mar 11 15:12:53 1998
++++ ncurses-5.3.20030906.orig/man/curs_beep.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998,2003 Free 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_beep.3x,v 1.7 1998/03/11 21:12:53 juergen Exp $
++.\" $Id: curs_beep.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_beep 3X ""
+ .SH NAME
+ \fBbeep\fR, \fBflash\fR - \fBcurses\fR bell and screen flash routines
+@@ -45,7 +45,7 @@
+ alert is possible, nothing happens. Nearly all terminals have an audible alert
+ (bell or beep), but only some can flash the screen.
+ .SH RETURN VALUE
+-These routines return \fBOK\fR if they succeed in beeping or flashing,
++These routines return \fBOK\fR if they succeed in beeping or flashing,
+ \fBERR\fR otherwise.
+ .SH EXTENSIONS
+ SVr4's beep and flash routines always returned \fBOK\fR, so it was not
+diff -urNd -urNd ncurses-5.3/man/curs_deleteln.3x ncurses-5.3.20030906.orig/man/curs_deleteln.3x
+--- ncurses-5.3/man/curs_deleteln.3x Sat Nov 11 14:43:20 2000
++++ ncurses-5.3.20030906.orig/man/curs_deleteln.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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_deleteln.3x,v 1.7 2000/11/11 20:43:20 Bernhard.Rosenkraenzer Exp $
++.\" $Id: curs_deleteln.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_deleteln 3X ""
+ .SH NAME
+ \fBdeleteln\fR,
+@@ -61,7 +61,7 @@
+ with the one under the cursor), and move the remaining lines up. The bottom
+ \fIn\fR lines are cleared. The current cursor position remains the same.
+
+-The \fBinsertln\fR and \fBwinsertln\fR routines, insert a blank line above the
++The \fBinsertln\fR and \fBwinsertln\fR routines insert a blank line above the
+ current line and the bottom line is lost.
+ .SH RETURN VALUE
+ All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
+diff -urNd -urNd ncurses-5.3/man/curs_extend.3x ncurses-5.3.20030906.orig/man/curs_extend.3x
+--- ncurses-5.3/man/curs_extend.3x Sat Feb 16 16:39:04 2002
++++ ncurses-5.3.20030906.orig/man/curs_extend.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1999-2000,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1999-2002,2003 Free 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: Thomas E. Dickey <dickey@clark.net> 1999
+ .\"
+-.\" $Id: curs_extend.3x,v 1.9 2002/02/16 22:39:04 tom Exp $
++.\" $Id: curs_extend.3x,v 1.11 2003/05/11 00:32:53 tom Exp $
+ .TH curs_extend 3X ""
+ .SH NAME
+ \fBcurses_version\fP,
+@@ -55,11 +55,11 @@
+ is able to use user-defined or nonstandard names
+ which may be compiled into the terminfo
+ description, i.e., via the terminfo or termcap interfaces.
+-Normally these names are available for use, since the essential descision
+-is made by using the \fB-x\fP option of \fItic\fP to compile
++Normally these names are available for use, since the essential decision
++is made by using the \fB\-x\fP option of \fItic\fP to compile
+ extended terminal definitions.
+ However you can disable this feature
+-to ensure compatiblity with other implementations of curses
++to ensure compatiblity with other implementations of curses.
+ .SH PORTABILITY
+ These routines are specific to ncurses. They were not supported on
+ Version 7, BSD or System V implementations. It is recommended that
+diff -urNd -urNd ncurses-5.3/man/curs_get_wch.3x ncurses-5.3.20030906.orig/man/curs_get_wch.3x
+--- ncurses-5.3/man/curs_get_wch.3x Sat May 18 16:48:53 2002
++++ ncurses-5.3.20030906.orig/man/curs_get_wch.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002,2003 Free 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.3 2002/05/18 21:48:53 tom Exp $
++.\" $Id: curs_get_wch.3x,v 1.5 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_get_wch 3X ""
+ .SH NAME
+ \fBget_wch\fR,
+@@ -37,13 +37,13 @@
+ .SH SYNOPSIS
+ \fB#include <curses.h>\fR
+ .sp
+-\fBint get_wch(win_t *\fR\fIwch\fR\fB);\fR
++\fBint get_wch(wint_t *\fR\fIwch\fR\fB);\fR
+ .br
+-\fBint wget_wch(WINDOW *\fR\fIwin\fR\fB, win_t *\fR\fIwch\fR\fB);\fR
++\fBint wget_wch(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
+ .br
+-\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, win_t *\fR\fIwch\fR\fB);\fR
++\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
+ .br
+-\fBint mvwget_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, win_t *\fR\fIwch\fR\fB);\fR
++\fBint mvwget_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
+ .br
+ \fBint unget_wch(const wchar_t \fR\fIwch\fR\fB);\fR
+ .SH DESCRIPTION
+@@ -130,7 +130,7 @@
+ Depending on the state of the tty driver when each character
+ is typed, the program may produce undesirable results.
+ .PP
+-All functions except \fBwget_wch\fR and \fBunget_wch\fR
++All functions except \fBwget_wch\fR and \fBunget_wch\fR
+ may be macros.
+ .SH RETURN VALUES
+ When
+diff -urNd -urNd ncurses-5.3/man/curs_get_wstr.3x ncurses-5.3.20030906.orig/man/curs_get_wstr.3x
+--- ncurses-5.3/man/curs_get_wstr.3x Sat May 18 16:48:15 2002
++++ ncurses-5.3.20030906.orig/man/curs_get_wstr.3x Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002,2003 Free 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.2 2002/05/18 21:48:15 tom Exp $
++.\" $Id: curs_get_wstr.3x,v 1.3 2003/07/05 11:15:28 tom Exp $
+ .TH curs_get_wstr 3X ""
+ .SH NAME
+ \fBget_wstr\fR,
+@@ -151,6 +151,9 @@
+ In the latter case,
+ an ERR return without other data is treated as an end-of-file condition,
+ and the returned array contains a \fBWEOF\fR followed by a null \fBwchar_t\fR.
++.PP
++X/Open curses documents these functions to pass an array of \fBwchar_t\fR,
++but all of the vendors implement this using \fBwint_t\fR.
+ .SH SEE ALSO
+ Functions:
+ \fBcurses\fR(3X),
+diff -urNd -urNd ncurses-5.3/man/curs_getcchar.3x ncurses-5.3.20030906.orig/man/curs_getcchar.3x
+--- ncurses-5.3/man/curs_getcchar.3x Sat Mar 23 19:08:55 2002
++++ ncurses-5.3.20030906.orig/man/curs_getcchar.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2001,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 2001-2002,2003 Free 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.6 2002/03/24 01:08:55 tom Exp $
++.\" $Id: curs_getcchar.3x,v 1.7 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_getcchar 3X ""
+ .SH NAME
+ \fBgetcchar\fP,
+@@ -108,7 +108,7 @@
+ The string must be L'\\0' terminated,
+ contain at most one character with strictly positive width,
+ which must be the first,
+-and contain no characters of negative width.
++and contain no characters of negative width.
+ .SH NOTES
+ .PP
+ The \fIopts\fP argument is reserved for future use.
+diff -urNd -urNd ncurses-5.3/man/curs_getch.3x ncurses-5.3.20030906.orig/man/curs_getch.3x
+--- ncurses-5.3/man/curs_getch.3x Sun Mar 17 08:36:21 2002
++++ ncurses-5.3.20030906.orig/man/curs_getch.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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.21 2002/03/17 14:36:21 tom Exp $
++.\" $Id: curs_getch.3x,v 1.22 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_getch 3X ""
+ .SH NAME
+ \fBgetch\fR,
+@@ -82,7 +82,7 @@
+ that function key is returned instead of the raw characters.
+ Possible function
+ keys are defined in \fB<curses.h>\fR as macros with values outside the range
+-of 8-bit characters whose names begin with \fBKEY_.\fR Thus, a variable
++of 8-bit characters whose names begin with \fBKEY_\fR. Thus, a variable
+ intended to hold the return value of a function key must be of short size or
+ larger.
+
+@@ -143,7 +143,7 @@
+ KEY_SRESET/Soft (partial) reset
+ KEY_RESET/Reset or hard reset
+ KEY_PRINT/Print or copy
+-KEY_LL/Home down or bottom (lower left).
++KEY_LL/Home down or bottom (lower left)
+ KEY_A1/Upper left of keypad
+ KEY_A3/Upper right of keypad
+ KEY_B2/Center of keypad
+@@ -238,7 +238,7 @@
+ treat these control keys specially (and ignore the terminfo), or
+ use the terminfo definitions.
+ \fBNcurses\fR uses the terminfo definition.
+-If it says that KEY_ENTER is control/M, \fBgetch\fR, will return KEY_ENTER
++If it says that KEY_ENTER is control/M, \fBgetch\fR will return KEY_ENTER
+ when you press control/M.
+
+ When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
+diff -urNd -urNd ncurses-5.3/man/curs_getstr.3x ncurses-5.3.20030906.orig/man/curs_getstr.3x
+--- ncurses-5.3/man/curs_getstr.3x Sat Apr 13 17:14:30 2002
++++ ncurses-5.3.20030906.orig/man/curs_getstr.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_getstr.3x,v 1.11 2002/04/13 22:14:30 tom Exp $
++.\" $Id: curs_getstr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_getstr 3X ""
+ .SH NAME
+ \fBgetstr\fR,
+@@ -90,7 +90,7 @@
+
+ SVr3 and early SVr4 curses implementations did not reject function keys;
+ the SVr4.0 documentation claimed that "special keys" (such as function
+-keys, "home" key, "clear" key, \fIetc\fR.) are interpreted" without
++keys, "home" key, "clear" key, \fIetc\fR.) are "interpreted", without
+ giving details. It lied. In fact, the `character' value appended to the
+ string by those implementations was predictable but not useful
+ (being, in fact, the low-order eight bits of the key's KEY_ value).
+diff -urNd -urNd ncurses-5.3/man/curs_getyx.3x ncurses-5.3.20030906.orig/man/curs_getyx.3x
+--- ncurses-5.3/man/curs_getyx.3x Sat Sep 21 14:00:38 2002
++++ ncurses-5.3.20030906.orig/man/curs_getyx.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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,17 +26,9 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_getyx.3x,v 1.8 2002/09/21 19:00:38 tom Exp $
++.\" $Id: curs_getyx.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_getyx 3X ""
+ .SH NAME
+-.IX getbegx
+-.IX getbegy
+-.IX getcurx
+-.IX getcury
+-.IX getmaxx
+-.IX getmaxy
+-.IX getparx
+-.IX getpary
+ \fBgetyx\fR,
+ \fBgetparyx\fR,
+ \fBgetbegyx\fR,
+@@ -64,7 +56,7 @@
+ Like \fBgetyx\fR, the \fBgetbegyx\fR and \fBgetmaxyx\fR macros store
+ the current beginning coordinates and size of the specified window.
+ .SH RETURN VALUE
+-The return values of these macros are undefined (\fIi\fR.\fIe\fR.,
++The return values of these macros are undefined (i.e.,
+ they should not be used as the right-hand side of assignment statements).
+ .SH NOTES
+ All of these interfaces are macros.
+diff -urNd -urNd ncurses-5.3/man/curs_initscr.3x ncurses-5.3.20030906.orig/man/curs_initscr.3x
+--- ncurses-5.3/man/curs_initscr.3x Sat Jul 20 09:51:04 2002
++++ ncurses-5.3.20030906.orig/man/curs_initscr.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_initscr.3x,v 1.11 2002/07/20 14:51:04 tom Exp $
++.\" $Id: curs_initscr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_initscr 3X ""
+ .SH NAME
+ \fBinitscr\fR,
+@@ -111,7 +111,7 @@
+
+ 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
++It is safe but redundant to check the return value of \fBinitscr\fR
+ in XSI Curses.
+ .SH SEE ALSO
+ \fBcurses\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_refresh\fR(3X),
+diff -urNd -urNd ncurses-5.3/man/curs_inopts.3x ncurses-5.3.20030906.orig/man/curs_inopts.3x
+--- ncurses-5.3/man/curs_inopts.3x Sat Aug 10 17:29:49 2002
++++ ncurses-5.3.20030906.orig/man/curs_inopts.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2001 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_inopts.3x,v 1.9 2002/08/10 22:29:49 tom Exp $
++.\" $Id: curs_inopts.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_inopts 3X ""
+ .SH NAME
+ \fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR,
+@@ -163,9 +163,9 @@
+
+ The \fBtimeout\fR and \fBwtimeout\fR routines set blocking or
+ non-blocking read for a given window. If \fIdelay\fR is negative,
+-blocking read is used (\fIi\fR.\fIe\fR., waits indefinitely for
++blocking read is used (i.e., waits indefinitely for
+ input). If \fIdelay\fR is zero, then non-blocking read is used
+-(\fIi\fR.\fIe\fR., read returns \fBERR\fR if no input is waiting). If
++(i.e., read returns \fBERR\fR if no input is waiting). If
+ \fIdelay\fR is positive, then read blocks for \fIdelay\fR
+ milliseconds, and returns \fBERR\fR if there is still no input.
+ Hence, these routines provide the same functionality as \fBnodelay\fR,
+@@ -193,7 +193,7 @@
+ AT&T curses implementations, in that the echo bit is cleared when curses
+ initializes the terminal state. BSD curses differed from this slightly; it
+ 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
++off as a side-effect. For best portability, set echo or noecho explicitly
+ just after initialization, even if your program remains in cooked mode.
+ .SH NOTES
+ Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
+diff -urNd -urNd ncurses-5.3/man/curs_insch.3x ncurses-5.3.20030906.orig/man/curs_insch.3x
+--- ncurses-5.3/man/curs_insch.3x Sat Jul 1 14:57:21 2000
++++ ncurses-5.3.20030906.orig/man/curs_insch.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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_insch.3x,v 1.7 2000/07/01 19:57:21 tom Exp $
++.\" $Id: curs_insch.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_insch 3X ""
+ .SH NAME
+ \fBinsch\fR,
+@@ -45,7 +45,7 @@
+ \fBint mvwinsch(WINDOW *win, int y, int x, chtype ch);\fR
+ .br
+ .SH DESCRIPTION
+-These routines, insert the character \fIch\fR before the character under the
++These routines insert the character \fIch\fR before the character under the
+ cursor. All characters to the right of the cursor are moved one space to the
+ right, with the possibility of the rightmost character on the line being lost.
+ The insertion operation does not change the cursor position.
+diff -urNd -urNd ncurses-5.3/man/curs_mouse.3x ncurses-5.3.20030906.orig/man/curs_mouse.3x
+--- ncurses-5.3/man/curs_mouse.3x Sat Jul 20 09:52:14 2002
++++ ncurses-5.3.20030906.orig/man/curs_mouse.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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.20 2002/07/20 14:52:14 tom Exp $
++.\" $Id: curs_mouse.3x,v 1.22 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_mouse 3X ""
+ .SH NAME
+ \fBgetmouse\fR, \fBungetmouse\fR,
+@@ -149,8 +149,8 @@
+ to screen-relative coordinates due to the mechanism to reserve lines on top
+ or bottom of the screen for other purposes (ripoff() call, see also slk_...
+ functions).
+-If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers
+-\fBpY, pX\fR must reference the coordinates of a location inside the window
++If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers
++\fBpY, pX\fR must reference the coordinates of a location inside the window
+ \fBwin\fR.
+ They are converted to screen-relative coordinates and returned
+ through the pointers.
+@@ -168,7 +168,7 @@
+ Please notice, that the referenced coordinates
+ are only replaced by the converted coordinates if the transformation was
+ successful.
+-
++
+ The \fBmouseinterval\fR function sets the maximum time (in thousands of a
+ second) that can elapse between press and release events for them to
+ be recognized as a click.
+@@ -209,6 +209,14 @@
+ \fBncurses\fR(3X) (and the \fBwmousemask\fR function will always
+ return \fB0\fR).
+
++If the terminfo entry contains a \fBXM\fR string,
++this is used in the xterm mouse driver to control the
++way the terminal is initialized for mouse operation.
++The default, if \fBXM\fR is not found,
++corresponds to private mode 1000 of xterm:
++
++ \\E[?1000%?%p1%{1}%=%th%el%;
++
+ The z member in the event structure is not presently used.
+ It is intended
+ for use with touch screens (which may be pressure-sensitive) or with
+diff -urNd -urNd ncurses-5.3/man/curs_outopts.3x ncurses-5.3.20030906.orig/man/curs_outopts.3x
+--- ncurses-5.3/man/curs_outopts.3x Sat Oct 13 19:50:30 2001
++++ ncurses-5.3.20030906.orig/man/curs_outopts.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2001 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2001,2003 Free 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_outopts.3x,v 1.17 2001/10/14 00:50:30 tom Exp $
++.\" $Id: curs_outopts.3x,v 1.18 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_outopts 3X ""
+ .SH NAME
+ \fBclearok\fR, \fBidlok\fR, \fBidcok\fR, \fBimmedok\fR,
+@@ -93,7 +93,7 @@
+
+ If \fBimmedok\fR is called with \fBTRUE as argument\fR, any change
+ in the window image, such as the ones caused by \fBwaddch, wclrtobot, wscrl\fR,
+-\fIetc\fR., automatically cause a call to \fBwrefresh\fR.
++etc., automatically cause a call to \fBwrefresh\fR.
+ However, it may
+ degrade performance considerably, due to repeated calls to \fBwrefresh\fR.
+ It is disabled by default.
+@@ -165,7 +165,7 @@
+ This will not work under
+ ncurses.
+
+-Earlier System V curses implementations specified that with \fBscrollok\fR
++Earlier System V curses implementations specified that with \fBscrollok\fR
+ enabled, any window modification triggering a scroll also forced a physical
+ refresh.
+ XSI Curses does not require this, and \fBncurses\fR avoids doing
+diff -urNd -urNd ncurses-5.3/man/curs_pad.3x ncurses-5.3.20030906.orig/man/curs_pad.3x
+--- ncurses-5.3/man/curs_pad.3x Tue Jul 4 17:38:13 2000
++++ ncurses-5.3.20030906.orig/man/curs_pad.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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_pad.3x,v 1.9 2000/07/04 22:38:13 tom Exp $
++.\" $Id: curs_pad.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_pad 3X ""
+ .SH NAME
+ \fBnewpad\fR, \fBsubpad\fR, \fBprefresh\fR,
+@@ -53,7 +53,7 @@
+ screen size, and is not necessarily associated with a particular part of the
+ screen. Pads can be used when a large window is needed, and only a part of the
+ window will be on the screen at one time. Automatic refreshes of pads
+-(\fIe\fR.\fIg\fR., from scrolling or echoing of input) do not occur. It is not
++(e.g., from scrolling or echoing of input) do not occur. It is not
+ legal to call \fBwrefresh\fR with a \fIpad\fR as an argument; the routines
+ \fBprefresh\fR or \fBpnoutrefresh\fR should be called instead. Note that these
+ routines require additional parameters to specify the part of the pad to be
+@@ -84,7 +84,7 @@
+ The \fBpechochar\fR routine is functionally equivalent to a call to \fBaddch\fR
+ followed by a call to \fBrefresh\fR, a call to \fBwaddch\fR followed by a call
+ to \fBwrefresh\fR, or a call to \fBwaddch\fR followed by a call to
+-\fBprefresh.\fR The knowledge that only a single character is being output is
++\fBprefresh\fR. The knowledge that only a single character is being output is
+ taken into consideration and, for non-control characters, a considerable
+ performance gain might be seen by using these routines instead of their
+ equivalents. In the case of \fBpechochar\fR, the last location of the pad on
+@@ -95,7 +95,7 @@
+ completion.
+
+ Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR
+-to \fBENOMEM\fR.
++to \fBENOMEM\fR.
+ .SH NOTES
+ Note that \fBpechochar\fR may be a macro.
+ .SH PORTABILITY
+diff -urNd -urNd ncurses-5.3/man/curs_print.3x ncurses-5.3.20030906.orig/man/curs_print.3x
+--- ncurses-5.3/man/curs_print.3x Sat Feb 16 16:39:04 2002
++++ ncurses-5.3.20030906.orig/man/curs_print.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_print.3x,v 1.5 2002/02/16 22:39:04 tom Exp $
++.\" $Id: curs_print.3x,v 1.6 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_print 3X ""
+ .SH NAME
+ \fBmcprint\fR - ship binary data to printer
+@@ -46,7 +46,7 @@
+ rule of thumb is to sleep for a second after shipping each 80-character line.
+
+ .SH RETURN VALUE
+-The \fBmcprint\fR function returns \fBERR\fR if the write operation aborted
++The \fBmcprint\fR function returns \fBERR\fR if the write operation aborted
+ for some reason. In this case, errno will contain either an error associated
+ with \fBwrite(2)\fR or one of the following:
+ .TP 5
+diff -urNd -urNd ncurses-5.3/man/curs_printw.3x ncurses-5.3.20030906.orig/man/curs_printw.3x
+--- ncurses-5.3/man/curs_printw.3x Sat Jul 20 10:01:43 2002
++++ ncurses-5.3.20030906.orig/man/curs_printw.3x Tue May 13 20:08:22 2003
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_printw.3x,v 1.12 2002/07/20 15:01:43 tom Exp $
++.\" $Id: curs_printw.3x,v 1.13 2002/11/16 22:28:57 tom Exp $
+ .TH curs_printw 3X ""
+ .SH NAME
+ \fBprintw\fR,
+@@ -37,17 +37,17 @@
+ .SH SYNOPSIS
+ \fB#include <curses.h>\fR
+
+-\fBint printw(char *fmt, ...);\fR
++\fBint printw(const char *fmt, ...);\fR
+ .br
+-\fBint wprintw(WINDOW *win, char *fmt, ...);\fR
++\fBint wprintw(WINDOW *win, const char *fmt, ...);\fR
+ .br
+-\fBint mvprintw(int y, int x, char *fmt, ...);\fR
++\fBint mvprintw(int y, int x, const char *fmt, ...);\fR
+ .br
+-\fBint mvwprintw(WINDOW *win, int y, int x, char *fmt, ...);\fR
++\fBint mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...);\fR
+ .br
+-\fBint vwprintw(WINDOW *win, char *fmt, va_list varglist);\fR
++\fBint vwprintw(WINDOW *win, const char *fmt, va_list varglist);\fR
+ .br
+-\fBint vw_printw(WINDOW *win, char *fmt, va_list varglist);\fR
++\fBint vw_printw(WINDOW *win, const char *fmt, va_list varglist);\fR
+ .br
+ .SH DESCRIPTION
+ The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
+diff -urNd -urNd ncurses-5.3/man/curs_scroll.3x ncurses-5.3.20030906.orig/man/curs_scroll.3x
+--- ncurses-5.3/man/curs_scroll.3x Sat Oct 13 19:51:56 2001
++++ ncurses-5.3.20030906.orig/man/curs_scroll.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2001,2003 Free 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_scroll.3x,v 1.9 2001/10/14 00:51:56 tom Exp $
++.\" $Id: curs_scroll.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_scroll 3X ""
+ .SH NAME
+ \fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window
+@@ -61,12 +61,12 @@
+ .SH NOTES
+ Note that \fBscrl\fR and \fBscroll\fR may be macros.
+
+-The SVr4 documentation says that the optimization of physically scrolling
++The SVr4 documentation says that the optimization of physically scrolling
+ immediately if the scroll region is the entire screen "is" performed, not
+ "may be" performed.
+ This implementation deliberately does not guarantee
+ that this will occur, to leave open the possibility of smarter
+-optimization of multiple scroll actions on the next update.
++optimization of multiple scroll actions on the next update.
+
+ Neither the SVr4 nor the XSI documentation specify whether the current
+ attribute or
+diff -urNd -urNd ncurses-5.3/man/curs_slk.3x ncurses-5.3.20030906.orig/man/curs_slk.3x
+--- ncurses-5.3/man/curs_slk.3x Sat Mar 3 15:05:41 2001
++++ ncurses-5.3.20030906.orig/man/curs_slk.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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_slk.3x,v 1.11 2001/03/03 21:05:41 Todd.C.Miller Exp $
++.\" $Id: curs_slk.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_slk 3X ""
+ .SH NAME
+ \fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR,
+@@ -77,7 +77,7 @@
+ many terminals. For those terminals that do not have soft labels,
+ \fBcurses\fR takes over the bottom line of \fBstdscr\fR, reducing the size of
+ \fBstdscr\fR and the variable \fBLINES\fR. \fBcurses\fR standardizes on eight
+-labels of up to eight characters each. In addition to this, the ncurses
++labels of up to eight characters each. In addition to this, the ncurses
+ implementation supports a mode where it simulates 12 labels of up to five
+ characters each. This is most common for todays PC like enduser devices.
+ Please note that ncurses simulates this mode by taking over up to two lines at
+@@ -94,10 +94,10 @@
+ identify the key numbers easily.
+
+ The \fBslk_set\fR routine requires \fIlabnum\fR to be a label number,
+-from \fB1\fR to \fB8\fR (resp. \fB12\fR); \fIlabel\fR must be the string
++from \fB1\fR to \fB8\fR (resp. \fB12\fR); \fIlabel\fR must be the string
+ to be put on the label, up to eight (resp. five) characters in length.
+ A null string or a null pointer sets up a blank label. \fIfmt\fR is either
+-\fB0\fR, \fB1\fR, or \fB2\fR, indicating whether the label is to be
++\fB0\fR, \fB1\fR, or \fB2\fR, indicating whether the label is to be
+ left-justified, centered, or right-justified, respectively, within the
+ label.
+
+@@ -109,7 +109,7 @@
+
+ The \fBslk_clear\fR routine clears the soft labels from the screen.
+
+-The \fBslk_restore\fR routine, restores the soft labels to the screen
++The \fBslk_restore\fR routine restores the soft labels to the screen
+ after a \fBslk_clear\fR has been performed.
+
+ The \fBslk_touch\fR routine forces all the soft labels to be output
+@@ -118,7 +118,7 @@
+ The \fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR and \fBslk_attr\fR
+ routines correspond to \fBattron\fR, \fBattrset\fR, \fBattroff\fR and \fBattr_get\fR.
+ They have an effect only if soft labels are simulated on the bottom line of
+-the screen. The default highlight for soft keys is A_STANDOUT (as in
++the screen. The default highlight for soft keys is A_STANDOUT (as in
+ System V curses, which does not document this fact).
+
+ The \fBslk_color\fR routine corresponds to \fBcolor_set\fR. It has an effect only
+diff -urNd -urNd ncurses-5.3/man/curs_termcap.3x ncurses-5.3.20030906.orig/man/curs_termcap.3x
+--- ncurses-5.3/man/curs_termcap.3x Sat Feb 16 13:26:41 2002
++++ ncurses-5.3.20030906.orig/man/curs_termcap.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_termcap.3x,v 1.16 2002/02/16 19:26:41 tom Exp $
++.\" $Id: curs_termcap.3x,v 1.18 2003/02/08 22:25:47 tom Exp $
+ .TH curs_termcap 3X ""
+ .ds n 5
+ .SH NAME
+@@ -130,6 +130,12 @@
+ Because terminfo conventions for representing padding in string capabilities
+ differ from termcap's, \fBtputs("50");\fR 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 \fBsgr\fR string.
++One consequence of this is that termcap applications assume \fRme\fR
++(terminfo \fBsgr0\fR) does not reset the alternate character set.
++This implementation checks for, and modifies the data shown to the
++termcap interface to accommodate termcap's limitation in this respect.
+ .SH PORTABILITY
+ The XSI Curses standard, Issue 4 describes these functions. However, they
+ are marked TO BE WITHDRAWN and may be removed in future versions.
+diff -urNd -urNd ncurses-5.3/man/curs_terminfo.3x ncurses-5.3.20030906.orig/man/curs_terminfo.3x
+--- ncurses-5.3/man/curs_terminfo.3x Sat Jul 20 11:05:19 2002
++++ ncurses-5.3.20030906.orig/man/curs_terminfo.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1999-2000,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1999-2002,2003 Free 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_terminfo.3x,v 1.16 2002/07/20 16:05:19 tom Exp $
++.\" $Id: curs_terminfo.3x,v 1.17 2003/05/10 20:22:01 tom Exp $
+ .TH curs_terminfo 3X ""
+ .ds n 5
+ .SH NAME
+@@ -108,7 +108,7 @@
+
+ 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.
++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
+@@ -280,7 +280,7 @@
+ 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
+-the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR.
++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.
+ .SH SEE ALSO
+diff -urNd -urNd ncurses-5.3/man/curs_util.3x ncurses-5.3.20030906.orig/man/curs_util.3x
+--- ncurses-5.3/man/curs_util.3x Sun Sep 1 14:44:37 2002
++++ ncurses-5.3.20030906.orig/man/curs_util.3x Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_util.3x,v 1.9 2002/09/01 19:44:37 tom Exp $
++.\" $Id: curs_util.3x,v 1.11 2003/07/19 19:59:56 tom Exp $
+ .TH curs_util 3X ""
+ .SH NAME
+ \fBdelay_output\fR,
+@@ -44,7 +44,7 @@
+
+ \fBchar *unctrl(chtype c);\fR
+ .br
+-\fBchar *wunctrl(wchar_t w);\fR
++\fBchar *wunctrl(cchar_t *c);\fR
+ .br
+ \fBchar *keyname(int c);\fR
+ .br
+@@ -105,6 +105,7 @@
+ 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.
+
+ The \fBflushinp\fR routine throws away any typeahead that has been typed by the
+ user and has not yet been read by the program.
+@@ -125,7 +126,10 @@
+ terms. The description here is adapted from the XSI Curses standard (which
+ erroneously fails to describe the disabling of \fBcuu\fR).
+ .SH SEE ALSO
+-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_scr_dump\fR(3X).
++\fBcurses\fR(3X),
++\fBcurs_initscr\fR(3X),
++\fBcurs_kernel\fR(3X),
++\fBcurs_scr_dump\fR(3X).
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+diff -urNd -urNd ncurses-5.3/man/curs_window.3x ncurses-5.3.20030906.orig/man/curs_window.3x
+--- ncurses-5.3/man/curs_window.3x Sat Jul 1 15:08:37 2000
++++ ncurses-5.3.20030906.orig/man/curs_window.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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.9 2000/07/01 20:08:37 tom Exp $
++.\" $Id: curs_window.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+ .TH curs_window 3X ""
+ .SH NAME
+ \fBnewwin\fR,
+@@ -142,7 +142,7 @@
+ incompletely implemented, and not well tested.
+
+ 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
+diff -urNd -urNd ncurses-5.3/man/define_key.3x ncurses-5.3.20030906.orig/man/define_key.3x
+--- ncurses-5.3/man/define_key.3x Sat Feb 16 16:39:52 2002
++++ ncurses-5.3.20030906.orig/man/define_key.3x Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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,14 +28,14 @@
+ .\"
+ .\" Author: Thomas E. Dickey <dickey@clark.net> 1997
+ .\"
+-.\" $Id: define_key.3x,v 1.8 2002/02/16 22:39:52 tom Exp $
++.\" $Id: define_key.3x,v 1.9 2003/05/17 23:25:11 tom Exp $
+ .TH define_key 3X ""
+ .SH NAME
+ \fBdefine_key\fP \- define a keycode
+ .SH SYNOPSIS
+ \fB#include <curses.h>\fP
+
+-\fBint define_key(char *definition, int keycode);\fP
++\fBint define_key(const char *definition, int keycode);\fP
+ .SH DESCRIPTION
+ This is an extension to the curses library.
+ It permits an application to define keycodes with their corresponding control
+diff -urNd -urNd ncurses-5.3/man/form_field.3x ncurses-5.3.20030906.orig/man/form_field.3x
+--- ncurses-5.3/man/form_field.3x Sat Nov 28 19:05:52 1998
++++ ncurses-5.3.20030906.orig/man/form_field.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998,2003 Free 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.5 1998/11/29 01:05:52 Rick.Ohnemus Exp $
++.\" $Id: form_field.3x,v 1.6 2003/05/10 20:33:49 jmc Exp $
+ .TH form_field 3X ""
+ .SH NAME
+ \fBform_field\fR - make and break connections between fields and forms
+@@ -50,7 +50,7 @@
+
+ The function \fBfield_count\fR returns the count of fields in \fIform\fR.
+
+-The function \fBmove_field\fR move the given field (which must be disconnected)
++The function \fBmove_field\fR moves the given field (which must be disconnected)
+ to a specified location on the screen.
+ .SH RETURN VALUES
+ The function \fBform_fields\fR returns \fBNULL\fR on error.
+diff -urNd -urNd ncurses-5.3/man/form_field_buffer.3x ncurses-5.3.20030906.orig/man/form_field_buffer.3x
+--- ncurses-5.3/man/form_field_buffer.3x Sat Jan 19 16:48:23 2002
++++ ncurses-5.3.20030906.orig/man/form_field_buffer.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_buffer.3x,v 1.9 2002/01/19 22:48:23 tom Exp $
++.\" $Id: form_field_buffer.3x,v 1.10 2003/05/10 20:22:01 tom Exp $
+ .TH form_field_buffer 3X ""
+ .SH NAME
+ \fBform_field_buffer\fR - field buffer control
+@@ -50,7 +50,7 @@
+ numbered buffers may be allocated by applications through the \fBnbuf\fR
+ argument of (see \fBform_field_new\fR(3X)) but are not manipulated by the forms
+ library. The function \fBfield_buffer\fR returns the address of the buffer.
+-Please note that this buffer has always the length of the buffer, that means
++Please note that this buffer has always the length of the buffer, that means
+ that it may typically contain trailing spaces. If you entered leading spaces
+ the buffer may also contain them. If you want the raw data, you must write your
+ own routine that copies the value out of the buffer and removes the leading
+diff -urNd -urNd ncurses-5.3/man/form_field_just.3x ncurses-5.3.20030906.orig/man/form_field_just.3x
+--- ncurses-5.3/man/form_field_just.3x Sat Jan 19 16:48:41 2002
++++ ncurses-5.3.20030906.orig/man/form_field_just.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_just.3x,v 1.6 2002/01/19 22:48:41 tom Exp $
++.\" $Id: form_field_just.3x,v 1.7 2003/05/10 20:33:49 jmc Exp $
+ .TH form_field_just 3X ""
+ .SH NAME
+ \fBform_field_just\fR - retrieve field characteristics
+@@ -48,7 +48,7 @@
+ The function \fBfield_just\fR returns one of: NO_JUSTIFICATION,
+ JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
+
+-The function \fBset_field_just\fR return one of the following:
++The function \fBset_field_just\fR returns one of the following:
+ .TP 5
+ \fBE_OK\fR
+ The routine succeeded.
+diff -urNd -urNd ncurses-5.3/man/form_field_new.3x ncurses-5.3.20030906.orig/man/form_field_new.3x
+--- ncurses-5.3/man/form_field_new.3x Sat Feb 16 16:39:52 2002
++++ ncurses-5.3.20030906.orig/man/form_field_new.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_new.3x,v 1.11 2002/02/16 22:39:52 tom Exp $
++.\" $Id: form_field_new.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+ .TH form_field_new 3X ""
+ .SH NAME
+ \fBform_field_new\fR - create and destroy form fields
+@@ -84,7 +84,7 @@
+
+ It may be unwise to count on the set of attributes copied by
+ \fBdup_field\fR(3X) being portable; the System V forms library documents are
+-not very explicit on what gets copied and was not.
++not very explicit about what gets copied and what doesn't.
+ .SH AUTHORS
+ Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
+ S. Raymond.
+diff -urNd -urNd ncurses-5.3/man/form_field_opts.3x ncurses-5.3.20030906.orig/man/form_field_opts.3x
+--- ncurses-5.3/man/form_field_opts.3x Sat Nov 28 19:06:54 1998
++++ ncurses-5.3.20030906.orig/man/form_field_opts.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998,2003 Free 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_opts.3x,v 1.7 1998/11/29 01:06:54 Rick.Ohnemus Exp $
++.\" $Id: form_field_opts.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $
+ .TH form_field_opts 3X ""
+ .SH NAME
+ \fBform_field_opts\fR - set and get field options
+@@ -58,7 +58,7 @@
+ .TP 5
+ O_VISIBLE
+ The field is displayed. If this option is off, display of the field is
+-suppressed,
++suppressed.
+ .TP 5
+ O_ACTIVE
+ The field is visited during processing. If this option is off, the field will
+@@ -79,7 +79,7 @@
+ The field is cleared whenever a character is entered at the first position.
+ .TP 5
+ O_AUTOSKIP
+-Skip to the next field when this one fills
++Skip to the next field when this one fills.
+ .TP 5
+ O_NULLOK
+ Allow a blank field.
+diff -urNd -urNd ncurses-5.3/man/form_field_validation.3x ncurses-5.3.20030906.orig/man/form_field_validation.3x
+--- ncurses-5.3/man/form_field_validation.3x Sat Feb 16 16:39:52 2002
++++ ncurses-5.3.20030906.orig/man/form_field_validation.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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,10 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_field_validation.3x,v 1.12 2002/02/16 22:39:52 tom Exp $
++.\" $Id: form_field_validation.3x,v 1.14 2003/05/10 20:33:49 jmc Exp $
+ .TH form_field_validation 3X ""
+ .SH NAME
+-\fBform_field_validation\fR - data type validation for fields
++\fBform_field_validation\fR - data type validation for fields
+ .SH SYNOPSIS
+ \fB#include <form.h>\fR
+ .br
+@@ -38,10 +38,25 @@
+ FIELDTYPE *field_type(const FIELD *field);
+ .br
+ void *field_arg(const FIELD *field);
++.sp
++FIELDTYPE *TYPE_ALNUM;
++.br
++FIELDTYPE *TYPE_ALPHA;
++.br
++FIELDTYPE *TYPE_ENUM;
++.br
++FIELDTYPE *TYPE_INTEGER;
++.br
++FIELDTYPE *TYPE_NUMERIC;
++.br
++FIELDTYPE *TYPE_REGEXP;
++.br
++FIELDTYPE *TYPE_IPV4;
+ .br
+ .SH DESCRIPTION
+ The function \fBset_field_type\fR declares a data type for a given form field.
+-This is the type checked by validation functions. The types are as follows:
++This is the type checked by validation functions.
++The predefined types are as follows:
+ .TP 5
+ TYPE_ALNUM
+ Alphanumeric data. Requires a third \fBint\fR argument, a minimum field width.
+@@ -56,27 +71,29 @@
+ match must be a unique one (if this flag is off, a prefix matches the first
+ of any set of more than one list elements with that prefix). Please notice
+ that the string list is not copied, only a reference to it is stored in the
+-field. So you should avoid to use a list that lives in automatic variables
++field. So you should avoid using a list that lives in automatic variables
+ on the stack.
+ .TP 5
+ TYPE_INTEGER
+ Integer data, parsable to an integer by \fBatoi(3)\fR. Requires a third
+-\fBint\fR argument controlling the precision, a fourth \fBlong\fR argument
++\fBint\fR argument controlling the precision, a fourth \fBlong\fR argument
+ constraining minimum value, and a fifth \fBlong\fR constraining maximum value.
+-If the maximum value is less or equal the minimum value, the range is simply
+-ignored. On return the field buffer is formatted according to the \fBprintf\fR
+-format specification ".*ld", where the '*' is replaced by the precision argument.
++If the maximum value is less than or equal to the minimum value, the range is
++simply ignored. On return the field buffer is formatted according to the
++\fBprintf\fR format specification ".*ld", where the '*' is replaced by the
++precision argument.
+ For details of the precision handling see \fBprintf's\fR man-page.
+ .TP 5
+ TYPE_NUMERIC
+ Numeric data (may have a decimal-point part). Requires a third
+ \fBint\fR argument controlling the precision, a fourth \fBdouble\fR
+-argument constraining minimum value, and a fifth \fBdouble\fR constraining
+-maximum value. If your system supports locale's, the decimal point character
++argument constraining minimum value, and a fifth \fBdouble\fR constraining
++maximum value. If your system supports locales, the decimal point character
+ to be used must be the one specified by your locale.
+-If the maximum value is less or equal the minimum value, the range is simply
+-ignored. On return the field buffer is formatted according to the \fBprintf\fR
+-format specification ".*f", where the '*' is replaced by the precision argument.
++If the maximum value is less than or equal to the minimum value, the range is
++simply ignored. On return the field buffer is formatted according to the
++\fBprintf\fR format specification ".*f", where the '*' is replaced by the
++precision argument.
+ For details of the precision handling see \fBprintf's\fR man-page.
+ .TP 5
+ TYPE_REGEXP
+@@ -96,7 +113,7 @@
+ numbers between 0 and 255. Trailing blanks in the buffer are ignored. The address
+ itself is not validated. Please note that this is an ncurses extension. This
+ field type may not be available in other curses implementations.
+-
++.PP
+ It is possible to set up new programmer-defined field types. See the
+ \fBform_fieldtype\fR(3X) manual page.
+ .SH RETURN VALUE
+diff -urNd -urNd ncurses-5.3/man/form_fieldtype.3x ncurses-5.3.20030906.orig/man/form_fieldtype.3x
+--- ncurses-5.3/man/form_fieldtype.3x Sat Aug 4 15:36:25 2001
++++ ncurses-5.3.20030906.orig/man/form_fieldtype.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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_fieldtype.3x,v 1.9 2001/08/04 20:36:25 William.Setzer Exp $
++.\" $Id: form_fieldtype.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+ .TH form_fieldtype 3X ""
+ .SH NAME
+ \fBform_fieldtype\fR - define validation-field types
+@@ -57,7 +57,7 @@
+ .SH DESCRIPTION
+ The function \fBnew_fieldtype\fR creates a new field type usable for data
+ validation. You supply it with \fIfield_check\fR, a predicate to check the
+-validity of an entered data string whenever the user attempt to leave a field.
++validity of an entered data string whenever the user attempts to leave a field.
+ The (FIELD *) argument is passed in so the validation predicate can see the
+ field's buffer, sizes and other attributes; the second argument is an
+ argument-block structure, about which more below.
+@@ -69,22 +69,31 @@
+ The function \fBfree_fieldtype\fR frees the space allocated for a given
+ validation type.
+
+-The function \fBset_fieldtype\fR associates three storage-management functions
+-with a field type. The \fImak_arg\fR function is automatically applied to the
++The function \fBset_fieldtype_arg\fR associates three storage-management functions
++with a field type.
++The \fImake_arg\fR function is automatically applied to the
+ list of arguments you give \fBset_field_type\fR when attaching validation
+ to a field; its job is to bundle these into an allocated argument-block
+-object which can later be passed to validation predicated. The other two
+-hook arguments should copy and free argument-block structures. They will
+-be used by the forms-driver code. You must supply the \fImak_arg\fR function,
+-the other two are optional, you may supply NULL for them. In this case it
+-is assumed, that \fImak_arg\fR doesn't allocate memory but simply loads the
++object which can later be passed to validation predicated.
++The other two hook arguments should copy and free argument-block structures.
++They will be used by the forms-driver code.
++You must supply the \fImake_arg\fR function,
++the other two are optional, you may supply NULL for them.
++In this case it is assumed
++that \fImake_arg\fR does not allocate memory but simply loads the
+ argument into a single scalar value.
+
++The function \fBlink_fieldtype\fR creates
++a new field type from the two given types.
++They are connected by an logical 'OR'.
++
+ The form driver requests \fBREQ_NEXT_CHOICE\fR and \fBREQ_PREV_CHOICE\fR 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 \fBset_fieldtype_choice\fR
++user with a way to move through the set.
++The \fBset_fieldtype_choice\fR
+ function allows forms programmers to define successor and predecessor functions
+-for the field type. These functions take the field pointer and an
++for the field type.
++These functions take the field pointer and an
+ argument-block structure as arguments.
+ .SH RETURN VALUE
+ The pointer-valued routines return NULL on error.
+diff -urNd -urNd ncurses-5.3/man/infocmp.1m ncurses-5.3.20030906.orig/man/infocmp.1m
+--- ncurses-5.3/man/infocmp.1m Sat Oct 5 16:22:21 2002
++++ ncurses-5.3.20030906.orig/man/infocmp.1m Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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,14 +27,14 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: infocmp.1m,v 1.30 2002/10/05 21:22:21 tom Exp $
++.\" $Id: infocmp.1m,v 1.33 2003/05/11 00:32:53 tom Exp $
+ .TH infocmp 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+ \fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions
+ .SH SYNOPSIS
+-\fBinfocmp\fR [\fB-\
++\fBinfocmp\fR [\fB\-\
+ 1\
+ C\
+ E\
+@@ -58,9 +58,9 @@
+ u\
+ \fR]
+ .br
+- [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB-R \fR\fBsubset\fR]
++ [\fB\-v\fR \fIn\fR] [\fB\-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB\-R \fR\fBsubset\fR]
+ .br
+- [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR]
++ [\fB\-w\fR\ \fIwidth\fR] [\fB\-A\fR\ \fIdirectory\fR] [\fB\-B\fR\ \fIdirectory\fR]
+ .br
+ [\fItermname\fR...]
+ .SH DESCRIPTION
+@@ -72,9 +72,9 @@
+ 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,
+-the \fB-d\fR option will be assumed.
+-.SS Comparison Options [-d] [-c] [-n]
++\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]
+ \fBinfocmp\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
+@@ -82,35 +82,35 @@
+ \fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR
+ for string variables.
+
+-The \fB-d\fR option produces a list of each capability that is different
++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
+ entries, created by different people, for the same or similar terminals.
+
+-The \fB-c\fR option produces a list of each capability that is common between
++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
+-used as a quick check to see if the \fB-u\fR option is worth using.
++used as a quick check to see if the \fB\-u\fR option is worth using.
+
+-The \fB-n\fR option produces a list of each capability that is in neither
++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
+ 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
++.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
+ each terminal named.
+
+ .TS
+ center tab(/) ;
+ l l .
+-\fB-I\fR/use the \fBterminfo\fR names
+-\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\-I\fR/use the \fBterminfo\fR names
++\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
+ .TE
+
+ If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
+ used for the terminal name.
+
+-The source produced by the \fB-C\fR option may be used directly as a
++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. \fBinfocmp\fR will attempt to convert most of the
+ parameterized information, and anything not converted will be plainly marked in
+@@ -123,7 +123,7 @@
+ All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
+ 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.
+
+@@ -151,8 +151,8 @@
+ \fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept
+ \fB%p2\fR is printed before \fB%p1/%r\fR/hp
+ .TE
+-.SS Use= Option [-u]
+-The \fB-u\fR option produces a \fBterminfo\fR source description of the first
++.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
+ analyzing the differences between the first \fItermname\fR and the other
+@@ -187,29 +187,29 @@
+ the compilation time, is specifying extra \fBuse=\fR fields that are
+ superfluous. \fBinfocmp\fR will flag any other \fItermname use=\fR fields that
+ were not needed.
+-.SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR]
++.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
++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
+ 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.
+ .SS Other Options
+ .TP 5
+-\fB-1\fR
++\fB\-1\fR
+ 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
++\fB\-a\fR
+ tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding
+ them. Capabilities are commented by prefixing them with a period.
+ .TP 5
+-\fB-E\fR
++\fB\-E\fR
+ Dump the capabilities of the given terminal as tables, needed in
+ the C initializer for a
+ TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
+@@ -218,17 +218,17 @@
+ The tables are all declared static, and are named according to the type
+ and the name of the corresponding terminal entry.
+ .sp
+-Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
++Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
+ options was not needed; but support for extended names required making
+ the arrays of terminal capabilities separate from the TERMTYPE structure.
+ .TP 5
+-\fB-e\fR
++\fB\-e\fR
+ Dump the capabilities of the given terminal as a C initializer for a
+ TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
+ This option is useful for preparing versions of the curses library hardwired
+ for a given terminal type.
+ .TP 5
+-\fB-F\fR
++\fB\-F\fR
+ 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.
+@@ -237,21 +237,21 @@
+ 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.
++by also specifying \fB\-r\fR.
+ .TP 5
+-\fB-f\fR
++\fB\-f\fR
+ Display complex terminfo strings which contain if/then/else/endif expressions
+ indented for readability.
+ .TP 5
+-\fB-G\fR
++\fB\-G\fR
+ Display constant literals in decimal form
+ rather than their character equivalents.
+ .TP 5
+-\fB-g\fR
++\fB\-g\fR
+ Display constant character literals in quoted form
+ rather than their decimal equivalents.
+ .TP 5
+-\fB-i\fR
++\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
+ code tries to analyze it into actions in terms of the other capabilities in the
+@@ -302,17 +302,17 @@
+
+ An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
+ .TP 5
+-\bB-l\fR
++\fB\-l\fR
+ Set output format to terminfo.
+ .TP 5
+-\fB-p\fR
++\fB\-p\fR
+ Ignore padding specifications when comparing strings.
+ .TP 5
+-\fB-q\fR
++\fB\-q\fR
+ Make the comparison listing shorter by omitting subheadings, and using
+ "-" for absent capabilities, "@" for canceled rather than "NULL".
+ .TP 5
+-\fB-R\fR\fIsubset\fR
++\fB\-R\fR\fIsubset\fR
+ 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
+@@ -321,8 +321,8 @@
+ 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
+-The \fB-s\fR option sorts the fields within each type according to the argument
++\fB\-s \fR\fI[d|i|l|c]\fR
++The \fB\-s\fR option sorts the fields within each type according to the argument
+ below:
+ .br
+ .RS 5
+@@ -340,30 +340,30 @@
+ sort by the \fItermcap\fR name.
+ .RE
+ .IP
+-If the \fB-s\fR option is not given, the fields printed out will be
++If the \fB\-s\fR option is not given, the fields printed out will be
+ sorted alphabetically by the \fBterminfo\fR name within each type,
+-except in the case of the \fB-C\fR or the \fB-L\fR options, which cause the
++except in the case of the \fB\-C\fR or the \fB\-L\fR options, which cause the
+ sorting to be done by the \fBtermcap\fR name or the long C variable
+ name, respectively.
+ .TP 5
+-\fB-T\fR
++\fB\-T\fR
+ eliminates size-restrictions on the generated text.
+ This is mainly useful for testing and analysis, since the compiled
+ descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
+ .TP
+-\fB-t\fR
++\fB\-t\fR
+ tells \fBtic\fP to discard commented-out capabilities.
+ Normally when translating from terminfo to termcap,
+ untranslatable capabilities are commented-out.
+ .TP 5
+-\fB-V\fR
++\fB\-V\fR
+ reports the version of ncurses which was used in this program, and exits.
+ .TP 5
+-\fB-v\fR \fIn\fR
++\fB\-v\fR \fIn\fR
+ prints out tracing information on standard error as the program runs.
+ Higher values of n induce greater verbosity.
+ .TP 5
+-\fB-w\fR \fIwidth\fR
++\fB\-w\fR \fIwidth\fR
+ changes the output to \fIwidth\fR characters.
+ .SH FILES
+ .TP 20
+@@ -371,28 +371,28 @@
+ Compiled terminal description database.
+ .SH EXTENSIONS
+ The
+-\fB-E\fR,
+-\fB-F\fR,
+-\fB-G\fR,
+-\fB-R\fR,
+-\fB-T\fR,
+-\fB-V\fR,
+-\fB-a\fR,
+-\fB-e\fR,
+-\fB-f\fR,
+-\fB-g\fR,
+-\fB-i\fR,
+-\fB-l\fR,
+-\fB-p\fR,
+-\fB-q\fR and
+-\fB-t\fR
++\fB\-E\fR,
++\fB\-F\fR,
++\fB\-G\fR,
++\fB\-R\fR,
++\fB\-T\fR,
++\fB\-V\fR,
++\fB\-a\fR,
++\fB\-e\fR,
++\fB\-f\fR,
++\fB\-g\fR,
++\fB\-i\fR,
++\fB\-l\fR,
++\fB\-p\fR,
++\fB\-q\fR and
++\fB\-t\fR
+ options are not supported in SVr4 curses.
+
+-The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
++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
+-4.4BSD set, use -r -RBSD.
++4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
+ .SH BUGS
+-The -F option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
++The \fB\-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
+ .SH SEE ALSO
+ \fBinfocmp\fR(1M), \fBcaptoinfo\fR(1M), \fBinfotocap\fR(1M),
+ \fBtic\fR(1M), \fBtoe\fR(1M),
+diff -urNd -urNd ncurses-5.3/man/infotocap.1m ncurses-5.3.20030906.orig/man/infotocap.1m
+--- ncurses-5.3/man/infotocap.1m Sat Aug 12 20:56:03 2000
++++ ncurses-5.3.20030906.orig/man/infotocap.1m Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1999,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1999-2000,2003 Free 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,40 +27,40 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: infotocap.1m,v 1.3 2000/08/13 01:56:03 tom Exp $
++.\" $Id: infotocap.1m,v 1.4 2003/05/11 00:32:53 tom Exp $
+ .TH infotocap 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+ \fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
+ .SH SYNOPSIS
+-\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
++\fBinfotocap\fR [\fB\-v\fR\fIn\fR \fIwidth\fR] [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR . . .
+ .SH DESCRIPTION
+ \fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions. For each
+ one found, an equivalent \fBtermcap\fR description is written to standard
+ output. Terminfo \fBuse\fR capabilities are translated directly to termcap
+ \fBtc\fR capabilities.
+ .TP 5
+-\fB-v\fR
++\fB\-v\fR
+ print out tracing information on standard error as the program runs.
+ .TP 5
+-\fB-V\fR
++\fB\-V\fR
+ print out the version of the program in use on standard error and exit.
+ .TP 5
+-\fB-1\fR
++\fB\-1\fR
+ cause the fields to print out one to a line. Otherwise, the fields
+ will be printed several to a line to a maximum width of 60
+ characters.
+ .TP 5
+-\fB-w\fR
++\fB\-w\fR
+ change the output to \fIwidth\fR characters.
+ .SH FILES
+ .TP 20
+ \*d
+ Compiled terminal description database.
+ .SH NOTES
+-This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
+-You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
++This utility is actually a link to \fItic\fR(1M), running in \fI\-C\fR mode.
++You can use other \fItic\fR options such as \fB\-f\fR and \fB\-x\fR.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+ \fBtic\fR(1M),
+diff -urNd -urNd ncurses-5.3/man/key_defined.3x ncurses-5.3.20030906.orig/man/key_defined.3x
+--- ncurses-5.3/man/key_defined.3x Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/man/key_defined.3x Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,60 @@
++.\"***************************************************************************
++.\" Copyright (c) 2003 Free 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 2003
++.\"
++.\" $Id: key_defined.3x,v 1.2 2003/05/17 23:24:45 tom Exp $
++.TH key_defined 3X ""
++.SH NAME
++\fBdefine_key\fP \- define a keycode
++.SH SYNOPSIS
++\fB#include <curses.h>\fP
++
++\fBint key_defined(const char *definition);\fP
++.SH DESCRIPTION
++This is an extension to the curses library.
++It permits an application to determine if a string is currently bound
++to any keycode.
++.SH RETURN VALUE
++If the string is bound to a keycode, its value (greater than zero) is returned.
++If no keycode is bound, zero is returned.
++If the string conflicts with longer strings which are bound to keys, -1 is returned.
++.SH PORTABILITY
++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 them be conditioned using NCURSES_VERSION.
++.SH SEE ALSO
++\fBdefine_key\fR(3X).
++.SH AUTHOR
++Thomas Dickey.
++.\"#
++.\"# The following sets edit modes for GNU EMACS
++.\"# Local Variables:
++.\"# mode:nroff
++.\"# fill-column:79
++.\"# End:
+diff -urNd -urNd ncurses-5.3/man/keybound.3x ncurses-5.3.20030906.orig/man/keybound.3x
+--- ncurses-5.3/man/keybound.3x Sat Feb 16 16:30:36 2002
++++ ncurses-5.3.20030906.orig/man/keybound.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1999,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1999-2002,2003 Free 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: Thomas E. Dickey <dickey@clark.net> 1999
+ .\"
+-.\" $Id: keybound.3x,v 1.3 2002/02/16 22:30:36 tom Exp $
++.\" $Id: keybound.3x,v 1.4 2003/03/08 19:08:33 tom Exp $
+ .TH keyok 3X ""
+ .SH NAME
+ \fBkeybound\fP \- return definition of keycode
+@@ -41,9 +41,12 @@
+ It permits an application to determine the string which is defined
+ in the terminfo for specific keycodes.
+ .SH RETURN VALUE
+-The keycode must be greater than zero, else NULL is returned.
++The \fIkeycode\fP parameter must be greater than zero, else NULL is returned.
+ If it does not correspond to a defined key, then NULL is returned.
+-Otherwise, the function returns a string, which must be freed by the caller.
++The \fIcount\fP parameter is used to allow the application to iterate
++through multiple definitions, counting from zero.
++When successful,
++the function returns a string which must be freed by the caller.
+ .SH PORTABILITY
+ These routines are specific to ncurses. They were not supported on
+ Version 7, BSD or System V implementations. It is recommended that
+diff -urNd -urNd ncurses-5.3/man/make_sed.sh ncurses-5.3.20030906.orig/man/make_sed.sh
+--- ncurses-5.3/man/make_sed.sh Wed Feb 11 06:13:48 1998
++++ ncurses-5.3.20030906.orig/man/make_sed.sh Tue May 13 20:08:22 2003
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+-# $Id: make_sed.sh,v 1.5 1998/02/11 12:13:48 tom Exp $
++# $Id: make_sed.sh,v 1.6 2003/01/11 22:23:11 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc. #
++# Copyright (c) 1998,2003 Free 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,7 +47,7 @@
+ rm -f $UPPER $SCRIPT $RESULT
+ trap "rm -f $COL.* $INPUT $UPPER $SCRIPT $RESULT" 0 1 2 5 15
+ fgrep -v \# $1 | \
+-sed -e 's/[ ]\+/ /g' >$INPUT
++sed -e 's/[ ][ ]*/ /g' >$INPUT
+
+ for F in 1 2 3 4
+ do
+diff -urNd -urNd ncurses-5.3/man/man_db.renames ncurses-5.3.20030906.orig/man/man_db.renames
+--- ncurses-5.3/man/man_db.renames Sat Apr 13 16:49:08 2002
++++ ncurses-5.3.20030906.orig/man/man_db.renames Sun Jul 20 14:02:08 2003
+@@ -1,4 +1,4 @@
+-# $Id: man_db.renames,v 0.31 2002/04/13 21:49:08 tom Exp $
++# $Id: man_db.renames,v 0.32 2003/05/31 17:27:11 tom Exp $
+ # Manual-page renamings for the man_db program
+ #
+ # Files:
+@@ -89,6 +89,7 @@
+ infotocap.1m infotocap.1
+ keybound.3x keybound.3ncurses
+ keyok.3x keyok.3ncurses
++key_defined.3x key_defined.3ncurses
+ menu.3x menu.3menu
+ menu_attributes.3x attributes.3menu
+ menu_cursor.3x cursor.3menu
+diff -urNd -urNd ncurses-5.3/man/manlinks.sed ncurses-5.3.20030906.orig/man/manlinks.sed
+--- ncurses-5.3/man/manlinks.sed Sat Sep 21 14:02:03 2002
++++ ncurses-5.3.20030906.orig/man/manlinks.sed Sun Jul 20 14:02:08 2003
+@@ -1,6 +1,6 @@
+-# $Id: manlinks.sed,v 1.10 2002/09/21 19:02:03 tom Exp $
++# $Id: manlinks.sed,v 1.11 2003/05/24 18:57:33 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2000,2002 Free Software Foundation, Inc. #
++# Copyright (c) 2000-2002,2003 Free 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,6 +29,8 @@
+ # Given a manpage (nroff) as input, writes a list of the names that are
+ # listed in the "NAME" section, i.e., the names that we would like to use
+ # as aliases for the manpage -T.Dickey
++#
++# eliminate formatting controls that get in the way
+ /^'\\"/d
+ /\.\\"/d
+ /^\.br/d
+@@ -36,11 +38,18 @@
+ s/^\.IX//
+ s/\\f.//g
+ s/[:,]/ /g
++#
++# eliminate unnecessary whitespace, convert multiple blanks to single space
+ s/^[ ][ ]*//
+ s/[ ][ ]*$//
+ s/[ ][ ]*/ /g
++#
++# convert ".SH" into a more manageable form
+ s/\.SH[ ][ ]*/.SH_(/
+ #
++# in ".SH NAME"
++# change "\-" to "-", eliminate text after "-", and split the remaining lines
++# at each space, making a list of names:
+ /^\.SH_(NAME/,/^\.SH_(SYNOPSIS/{
+ s/\\-.*/ -/
+ / -/{
+@@ -54,16 +63,39 @@
+ s/ /\
+ /g
+ }
++#
++# in ".SH SYNOPSIS"
++# remove any line that does not contain a '(', since we only want functions.
++# then strip off return-type of each function.
++# finally, remove the parameter list, which begins with a '('.
+ /^\.SH_(SYNOPSIS/,/^\.SH_(DESCRIPTION/{
+- /^#/d
+ /^[^(]*$/d
++ # reduce
++ # .B "int add_wch( const cchar_t *\fIwch\fB );"
++ # to
++ # add_wch( const cchar_t *\fIwch\fB );"
+ s/^\([^ (]* [^ (]* [*]*\)//g
+ s/^\([^ (]* [*]*\)//g
++ # trim blanks in case we have
++ # void (*) (FORM *) field_init(const FORM *form);
++ s/) (/)(/g
++ # reduce stuff like
++ # void (*)(FORM *) field_init(const FORM *form);
++ # to
++ # field_init(const FORM *form);
++ s/^\(([^)]*)\)\(([^)]*)\)*[ ]*//g
++ # rename marker temporarily
+ s/\.SH_(/.SH_/
+- s/(.*//
++ # kill lines with ");", and trim off beginning of argument list.
++ s/[()].*//
++ # rename marker back
+ s/\.SH_/.SH_(/
+ }
++#
++# delete ".SH DESCRIPTION" and following lines
+ /^\.SH_(DESCRIPTION/,${
+ d
+ }
++#
++# delete any remaining directives
+ /^\./d
+diff -urNd -urNd ncurses-5.3/man/menu_driver.3x ncurses-5.3.20030906.orig/man/menu_driver.3x
+--- ncurses-5.3/man/menu_driver.3x Sat Feb 16 16:40:59 2002
++++ ncurses-5.3.20030906.orig/man/menu_driver.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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: menu_driver.3x,v 1.10 2002/02/16 22:40:59 tom Exp $
++.\" $Id: menu_driver.3x,v 1.11 2003/05/10 20:22:01 tom Exp $
+ .TH menu_driver 3X ""
+ .SH NAME
+ \fBmenu_driver\fR - command-processing loop of the menu system
+@@ -115,10 +115,10 @@
+ is generated and \fBE_UNKNOWN_COMMAND\fR is returned. This return value makes
+ sense, because a double click usually means that an item-specific action should
+ be returned. It's exactly the purpose of this return value to signal that an
+-application specific command should be executed. If a translation
++application specific command should be executed. If a translation
+ into a request was done, \fBmenu_driver\fR returns the result of this request.
+ If you clicked outside the user window or the mouse event couldn't be translated
+-into a menu request an \fBE_REQUEST_DENIED\fR is returned.
++into a menu request an \fBE_REQUEST_DENIED\fR is returned.
+ .PP
+ If the second argument is neither printable ASCII nor one of the above
+ pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific
+diff -urNd -urNd ncurses-5.3/man/menu_pattern.3x ncurses-5.3.20030906.orig/man/menu_pattern.3x
+--- ncurses-5.3/man/menu_pattern.3x Sat Feb 16 16:40:59 2002
++++ ncurses-5.3.20030906.orig/man/menu_pattern.3x Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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: menu_pattern.3x,v 1.7 2002/02/16 22:40:59 tom Exp $
++.\" $Id: menu_pattern.3x,v 1.8 2003/05/10 20:22:01 tom Exp $
+ .TH menu_pattern 3X ""
+ .SH NAME
+ \fBmenu_pattern\fR - get and set a menu's pattern buffer
+@@ -44,7 +44,7 @@
+
+ The function \fBset_menu_pattern\fR sets the pattern buffer for the given menu
+ and tries to find the first matching item. If it succeeds, that item becomes
+-current; if not, the current item does not change.
++current; if not, the current item does not change.
+
+ The function \fBmenu_pattern\fR returns the pattern buffer of the given
+ \fImenu\fR.
+diff -urNd -urNd ncurses-5.3/man/ncurses.3x ncurses-5.3.20030906.orig/man/ncurses.3x
+--- ncurses-5.3/man/ncurses.3x Sat Aug 10 16:56:07 2002
++++ ncurses-5.3.20030906.orig/man/ncurses.3x Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,1999,2001,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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: ncurses.3x,v 1.63 2002/08/10 21:56:07 tom Exp $
++.\" $Id: ncurses.3x,v 1.66 2003/05/11 00:32:53 tom Exp $
+ .hy 0
+ .TH ncurses 3X ""
+ .ds n 5
+@@ -322,6 +322,7 @@
+ is_linetouched/\fBcurs_touch\fR(3X)
+ is_wintouched/\fBcurs_touch\fR(3X)
+ isendwin/\fBcurs_initscr\fR(3X)
++key_defined/\fBkey_defined\fR(3X)*
+ key_name/\fBcurs_util\fR(3X)
+ keybound/\fBkeybound\fR(3X)*
+ keyname/\fBcurs_util\fR(3X)
+@@ -614,9 +615,9 @@
+ otherwise noted in the routine descriptions.
+
+ All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
+-\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, \fBgetmaxyx\fR. The return
++\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR. The return
+ values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
+-\fBgetmaxyx\fR are undefined (\fIi\fR.\fIe\fR., these should not be used as the
++\fBgetmaxyx\fR are undefined (i.e., these should not be used as the
+ right-hand side of assignment statements).
+
+ Routines that return pointers return \fBNULL\fR on error.
+@@ -629,7 +630,7 @@
+ 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.
++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
+@@ -784,7 +785,7 @@
+ .RS
+ .TP 3
+ -
+-the last directory to which \fBncurses\fR wrote, if any, is searched first.
++the last directory to which \fBncurses\fR wrote, if any, is searched first
+ .TP 3
+ -
+ the directory specified by the TERMINFO symbol
+@@ -828,7 +829,7 @@
+ \fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
+ descriptions.
+ .SH EXTENSIONS
+-The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
++The \fBncurses\fR library can be compiled with an option (\fB\-DUSE_GETCAP\fR)
+ that falls back to the old-style /etc/termcap file if the terminal setup code
+ cannot find a terminfo entry corresponding to \fBTERM\fR. Use of this feature
+ is not recommended, as it essentially includes an entire termcap compiler in
+@@ -848,6 +849,7 @@
+ of terminals by allowing the application designer to define additional
+ key sequences at runtime.
+ See the \fBdefine_key\fR(3X)
++\fBkey_defined\fR(3X),
+ and \fBkeyok\fR(3X) manual pages for details.
+
+ The \fBncurses\fR library can exploit the capabilities of terminals which
+diff -urNd -urNd ncurses-5.3/man/panel.3x ncurses-5.3.20030906.orig/man/panel.3x
+--- ncurses-5.3/man/panel.3x Sat Aug 12 20:56:47 2000
++++ ncurses-5.3.20030906.orig/man/panel.3x Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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.3x,v 1.10 2000/08/13 01:56:47 tom Exp $
++.\" $Id: panel.3x,v 1.11 2003/05/17 22:44:09 jmc Exp $
+ .TH panel 3X ""
+ .ds n 5
+ .ds d @TERMINFO@
+@@ -77,7 +77,7 @@
+ of the stack.
+ .P
+ A window is associated with every panel. The panel routines enable
+-you to create, move, hides, and show panels, as well as position a
++you to create, move, hide, and show panels, as well as position a
+ panel at any desired location in the stack.
+ .P
+ Panel routines are a functional layer added to \fBcurses\fR(3X), make only
+diff -urNd -urNd ncurses-5.3/man/term.5 ncurses-5.3.20030906.orig/man/term.5
+--- ncurses-5.3/man/term.5 Sat Aug 10 16:59:37 2002
++++ ncurses-5.3.20030906.orig/man/term.5 Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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.5,v 1.14 2002/08/10 21:59:37 tom Exp $
++.\" $Id: term.5,v 1.15 2003/05/10 20:33:49 jmc Exp $
+ .TH TERM 5
+ .ds n 5
+ .ds d @TERMINFO@
+@@ -56,7 +56,7 @@
+ or sign extension are made.
+ .PP
+ The compiled file is created with the
+-.I tic
++.I tic
+ program, and read by the routine
+ .IR setupterm .
+ The file is divided into six parts:
+@@ -84,7 +84,7 @@
+ and the second byte contains the most significant 8 bits.
+ (Thus, the value represented is 256*second+first.)
+ The value \-1 is represented by the two bytes 0377, 0377; other negative
+-values are illegal. This value generally
++values are illegal. This value generally
+ means that the corresponding capability is missing from this terminal.
+ Note that this format corresponds to the hardware of the \s-1VAX\s+1
+ and \s-1PDP\s+1-11 (that is, little-endian machines).
+@@ -160,12 +160,12 @@
+ ADM-3, a popular though rather stupid early terminal:
+ .nf
+ .sp
+-adm3a|lsi adm3a,
+- am,
+- cols#80, lines#24,
+- 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,
++adm3a|lsi adm3a,
++ am,
++ cols#80, lines#24,
++ 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,
+ .sp
+ .ft CW
+ \s-20000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
+diff -urNd -urNd ncurses-5.3/man/term.7 ncurses-5.3.20030906.orig/man/term.7
+--- ncurses-5.3/man/term.7 Sat Apr 20 11:50:47 2002
++++ ncurses-5.3.20030906.orig/man/term.7 Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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.13 2002/04/20 16:50:47 tom Exp $
++.\" $Id: term.7,v 1.14 2003/05/10 20:33:49 jmc Exp $
+ .TH TERM 7
+ .ds n 5
+ .ds d @TERMINFO@
+@@ -96,7 +96,7 @@
+ First, choose a root name. The root will consist of a lower-case letter
+ followed by up to seven lower-case letters or digits. You need to avoid using
+ punctuation characters in root names, because they are used and interpreted as
+-filenames and shell meta-characters (such as !, $, *, ? etc.) embedded in them
++filenames and shell meta-characters (such as !, $, *, ?, etc.) embedded in them
+ may cause odd and unhelpful behavior. The slash (/), or any other character
+ that may be interpreted by anyone's file system (\e, $, [, ]), is especially
+ dangerous (terminfo is platform-independent, and choosing names with special
+@@ -136,29 +136,29 @@
+ attributes.
+ .TP 5
+ -am
+-Enable auto-margin (right-margin wraparound)
++Enable auto-margin (right-margin wraparound).
+ .TP 5
+ -m
+-Mono mode - suppress color support
++Mono mode - suppress color support.
+ .TP 5
+ -na
+ No arrow keys - termcap ignores arrow keys which are actually there on the
+ terminal, so the user can use the arrow keys locally.
+ .TP 5
+ -nam
+-No auto-margin - suppress am capability
++No auto-margin - suppress am capability.
+ .TP 5
+ -nl
+-No labels - suppress soft labels
++No labels - suppress soft labels.
+ .TP 5
+ -nsl
+-No status line - suppress status line
++No status line - suppress status line.
+ .TP 5
+ -pp
+ Has a printer port which is used.
+ .TP 5
+ -rv
+-Terminal in reverse video mode (black on white)
++Terminal in reverse video mode (black on white).
+ .TP 5
+ -s
+ Enable status line.
+@@ -190,10 +190,10 @@
+ compiled terminal capability data base
+ .TP 5
+ /etc/inittab
+-tty line initialization (AT&T-like UNIXes).
++tty line initialization (AT&T-like UNIXes)
+ .TP 5
+ /etc/ttys
+-tty line initialization (BSD-like UNIXes).
++tty line initialization (BSD-like UNIXes)
+ .SH SEE ALSO
+ \fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
+ .\"#
+diff -urNd -urNd ncurses-5.3/man/terminfo.tail ncurses-5.3.20030906.orig/man/terminfo.tail
+--- ncurses-5.3/man/terminfo.tail Sat Apr 20 11:49:33 2002
++++ ncurses-5.3.20030906.orig/man/terminfo.tail Tue May 13 20:08:22 2003
+@@ -1,4 +1,4 @@
+-.\" $Id: terminfo.tail,v 1.35 2002/04/20 16:49:33 tom Exp $
++.\" $Id: terminfo.tail,v 1.38 2003/01/05 22:47:05 tom Exp $
+ .\" Beginning of terminfo.tail file
+ .ps +1
+ .PP
+@@ -311,42 +311,81 @@
+ to manipulate it.
+ Typically a sequence will push one of the
+ parameters onto the stack and then print it in some format.
+-Often more complex operations are necessary.
++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 \fBsgr\fP string.
+ .PP
+ The \fB%\fR encodings have the following meanings:
+ .PP
+-.DT
+-.nf
+-.ta .5i 1.5i
+- \s-1%% outputs `%'
+- %\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
+- as in \fBprintf\fP, flags are [-+#] and space
+- %c print pop() like %c in printf()
+- %s print pop() like %s in printf()
+-
+- %p[1-9] push \fIi\fP'th parm
+- %P[a-z] set dynamic variable [a-z] to pop()
+- %g[a-z] get dynamic variable [a-z] and push it
+- %P[A-Z] set static variable [a-z] to pop()
+- %g[A-Z] get static variable [a-z] and push it
+- %'\fIc\fP' char constant \fIc\fP
+- %{\fInn\fP} integer constant \fInn\fP
+- %l push strlen(pop)
+-
+- %+ %- %* %/ %m
+- arithmetic (%m is mod): push(pop() op pop())
+- %& %| %^ bit operations: push(pop() op pop())
+- %= %> %< logical operations: push(pop() op pop())
+- %A, %O logical and & or operations (for conditionals)
+- %! %~ unary operations push(op pop())
+- %i add 1 to first two parameters (for ANSI terminals)
+-
+- %? expr %t thenpart %e elsepart %;
+- if-then-else, %e elsepart is optional.
+- else-if's are possible a la Algol 68:
+- %? 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 %;
+-\s+1 c\di\u are conditions, b\di\u are bodies.
+-.fi
++.TP 5
++\s-1%%
++outputs `%'
++.TP
++%\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
++as in \fBprintf\fP, flags are [-+#] and space
++.TP
++%c
++print pop() like %c in \fBprintf\fP
++.TP
++%s
++print pop() like %s in \fBprintf\fP
++.TP
++%p[1-9]
++push \fIi\fP'th parameter
++.TP
++%P[a-z]
++set dynamic variable [a-z] to pop()
++.TP
++%g[a-z]
++get dynamic variable [a-z] and push it
++.TP
++%P[A-Z]
++set static variable [a-z] to pop()
++.TP
++%g[A-Z]
++get static variable [a-z] and push it
++.IP
++The terms "static" and "dynamic" are misleading.
++Historically, these are simply two different sets of variables,
++whose values are not reset between calls to \fBtparm\fP.
++However, that fact is not documented in other implementations.
++Relying on it will adversely impact portability to other implementations.
++.TP
++%'\fIc\fP'
++char constant \fIc\fP
++.TP
++%{\fInn\fP}
++integer constant \fInn\fP
++.TP
++%l
++push strlen(pop)
++.TP
++%+ %- %* %/ %m
++arithmetic (%m is mod): push(pop() op pop())
++.TP
++%& %| %^
++bit operations: push(pop() op pop())
++.TP
++%= %> %<
++logical operations: push(pop() op pop())
++.TP
++%A, %O
++logical and & or operations (for conditionals)
++.TP
++%! %~
++unary operations push(op pop())
++.TP
++%i
++add 1 to first two parameters (for ANSI terminals)
++.TP
++%? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %;
++if-then-else, %e \fIelsepart\fP is optional.
++else-if's are possible a la Algol 68:
++.br
++%? 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 %;
++.br
++c\di\u are conditions, b\di\u are bodies.
+ .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}%-".
+@@ -1170,7 +1209,7 @@
+ .PP
+ The \fBsetaf\fR/\fBsetab\fR and \fBsetf\fR/\fBsetb\fR capabilities take a
+ single numeric argument each.
+-Argument values 0-7 are portably defined as
++Argument values 0-7 of \fBsetaf\fR/\fBsetab\fR are portably defined as
+ follows (the middle column is the symbolic #define available in the header for
+ the \fBcurses\fR or \fBncurses\fR libraries).
+ The terminal hardware is free to
+@@ -1192,6 +1231,25 @@
+ white \fBCOLOR_WHITE\fR 7 max,max,max
+ .TE
+ .PP
++The argument values of \fBsetf\fR/\fBsetb\fR historically correspond to
++a different mapping, i.e.,
++.TS H
++center;
++l c c c
++l l n l.
++\fBColor #define Value RGB\fR
++black \fBCOLOR_BLACK\fR 0 0, 0, 0
++blue \fBCOLOR_BLUE\fR 1 0,0,max
++green \fBCOLOR_GREEN\fR 2 0,max,0
++cyan \fBCOLOR_CYAN\fR 3 0,max,max
++red \fBCOLOR_RED\ \fR 4 max,0,0
++magenta \fBCOLOR_MAGENTA\fR 5 max,0,max
++yellow \fBCOLOR_YELLOW\fR 6 max,max,0
++white \fBCOLOR_WHITE\fR 7 max,max,max
++.TE
++It is important to not confuse the two sets of color capabilities;
++otherwise red/blue will be interchanged on the display.
++.PP
+ On an HP-like terminal, use \fBscp\fR with a color-pair number parameter to set
+ which color pair is current.
+ .PP
+diff -urNd -urNd ncurses-5.3/man/tic.1m ncurses-5.3.20030906.orig/man/tic.1m
+--- ncurses-5.3/man/tic.1m Sat Oct 5 15:06:13 2002
++++ ncurses-5.3.20030906.orig/man/tic.1m Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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: tic.1m,v 1.33 2002/10/05 20:06:13 tom Exp $
++.\" $Id: tic.1m,v 1.35 2003/05/11 00:32:53 tom Exp $
+ .TH tic 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+@@ -52,11 +52,11 @@
+ t\
+ x\
+ \fR]
+-[\fB-e\fR \fInames\fR]
+-[\fB-o\fR \fIdir\fR]
+-[\fB-R\fR \fIsubset\fR]
+-[\fB-v\fR[\fIn\fR]]
+-[\fB-w\fR[\fIn\fR]]
++[\fB\-e\fR \fInames\fR]
++[\fB\-o\fR \fIdir\fR]
++[\fB\-R\fR \fIsubset\fR]
++[\fB\-v\fR[\fIn\fR]]
++[\fB\-w\fR[\fIn\fR]]
+ \fIfile\fR
+ .br
+ .SH DESCRIPTION
+@@ -78,31 +78,31 @@
+ directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
+ finally look in \fI\*d\fR.
+ .TP
+-\fB-1\fR
++\fB\-1\fR
+ restricts the output to a single column
+ .TP
+-\fB-a\fR
++\fB\-a\fR
+ tells \fBtic\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
++This sets the \fB\-x\fR option, because it treats the commented-out
+ entries as user-defined names.
+ .TP
+-\fB-C\fR
+-Force source translation to termcap format. Note: this differs from the -C
++\fB\-C\fR
++Force source translation to termcap format. Note: this differs from the \fB\-C\fR
+ option of \fIinfocmp\fR(1M) in that it does not merely translate capability
+ names, 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.
+ .TP
+-\fB-c\fR
++\fB\-c\fR
+ tells \fBtic\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
++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.
+ .TP
+-\fB-e \fR\fInames\fR
++\fB\-e \fR\fInames\fR
+ 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
+@@ -110,32 +110,32 @@
+ Otherwise no output will be generated for it.
+ The option value is interpreted as a file containing the list if it
+ contains a '/'.
+-(Note: depending on how tic was compiled, this option may require -I or -C.)
++(Note: depending on how tic was compiled, this option may require \fB\-I\fR or \fB\-C\fR.)
+ .TP
+-\fB-f\fR
++\fB\-f\fR
+ Display complex terminfo strings which contain if/then/else/endif expressions
+ indented for readability.
+ .TP
+-\fB-G\fR
++\fB\-G\fR
+ Display constant literals in decimal form
+ rather than their character equivalents.
+ .TP
+-\fB-g\fR
++\fB\-g\fR
+ Display constant character literals in quoted form
+ rather than their decimal equivalents.
+ .TP
+-\fB-I\fR
++\fB\-I\fR
+ Force source translation to terminfo format.
+ .TP
+-\fB-L\fR
++\fB\-L\fR
+ Force source translation to terminfo format
+ using the long C variable names listed in <\fBterm.h\fR>
+ .TP
+-\fB-N\fR
+-Disable smart defaults.
+-Normally, when translating from termcap to terminfo, the compiler makes
++\fB\-N\fR
++Disable smart defaults.
++Normally, when translating from termcap to terminfo, the compiler makes
+ a number of assumptions about the defaults of string capabilities
+-\fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR,
++\fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR,
+ \fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR,
+ \fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts
+ to use obsolete termcap capabilities to deduce correct values. It also
+@@ -143,42 +143,42 @@
+ This option forces a more literal translation that also preserves the
+ obsolete capabilities.
+ .TP
+-\fB-o\fR\fIdir\fR
++\fB\-o\fR\fIdir\fR
+ Write compiled entries to given directory. Overrides the TERMINFO environment
+ variable.
+ .TP
+-\fB-R\fR\fIsubset\fR
++\fB\-R\fR\fIsubset\fR
+ 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 outright broken ports like AIX 3.x
+ that have their own extensions incompatible with SVr4/XSI. Available subsets
+ are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details.
+ .TP
+-\fB-r\fR
++\fB\-r\fR
+ 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 multiple
+ tc capabilities per entry.
+ .TP
+-\fB-s\fR
++\fB\-s\fR
+ Summarize the compile by showing the directory into which entries
+ are written, and the number of entries which are compiled.
+ .TP
+-\fB-T\fR
++\fB\-T\fR
+ eliminates size-restrictions on the generated text.
+ This is mainly useful for testing and analysis, since the compiled
+ descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
+ .TP
+-\fB-t\fR
++\fB\-t\fR
+ tells \fBtic\fP to discard commented-out capabilities.
+ Normally when translating from terminfo to termcap,
+ untranslatable capabilities are commented-out.
+ .TP
+-\fB-V\fR
++\fB\-V\fR
+ reports the version of ncurses which was used in this program, and exits.
+ .TP
+-\fB-v\fR\fIn\fR
++\fB\-v\fR\fIn\fR
+ specifies that (verbose) output be written to standard error trace
+ information showing \fBtic\fR's progress. The optional integer
+ \fIn\fR is a number from 1 to 10, inclusive, indicating the desired
+@@ -186,10 +186,10 @@
+ level is 1. If \fIn\fR is specified and greater than 1, the level of
+ detail is increased.
+ .TP
+-\fB-w\fR\fIn\fR
++\fB\-w\fR\fIn\fR
+ specifies the width of the output.
+ .TP
+-\fB-x\fR
++\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
+@@ -274,25 +274,25 @@
+ error messages, and can be parsed by GNU Emacs's compile facility.
+
+ The
+-\fB-C\fR,
+-\fB-G\fR,
+-\fB-I\fR,
+-\fB-N\fR,
+-\fB-R\fR,
+-\fB-T\fR,
+-\fB-V\fR,
+-\fB-a\fR,
+-\fB-e\fR,
+-\fB-f\fR,
+-\fB-g\fR,
+-\fB-o\fR,
+-\fB-r\fR,
+-\fB-s\fR,
+-\fB-t\fR and
+-\fB-x\fR
++\fB\-C\fR,
++\fB\-G\fR,
++\fB\-I\fR,
++\fB\-N\fR,
++\fB\-R\fR,
++\fB\-T\fR,
++\fB\-V\fR,
++\fB\-a\fR,
++\fB\-e\fR,
++\fB\-f\fR,
++\fB\-g\fR,
++\fB\-o\fR,
++\fB\-r\fR,
++\fB\-s\fR,
++\fB\-t\fR and
++\fB\-x\fR
+ options
+ are not supported under SVr4.
+-The SVr4 -c mode does not report bad use links.
++The SVr4 \fB\-c\fR mode does not report bad use links.
+
+ System V does not compile entries to or read entries from your
+ \fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
+diff -urNd -urNd ncurses-5.3/man/toe.1m ncurses-5.3.20030906.orig/man/toe.1m
+--- ncurses-5.3/man/toe.1m Sat Aug 19 13:51:05 2000
++++ ncurses-5.3.20030906.orig/man/toe.1m Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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,45 +26,45 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: toe.1m,v 1.10 2000/08/19 18:51:05 tom Exp $
++.\" $Id: toe.1m,v 1.12 2003/05/11 00:32:53 tom Exp $
+ .TH toe 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+ \fBtoe\fR - table of (terminfo) entries
+ .SH SYNOPSIS
+-\fBtoe\fR [\fB-v\fR[\fIn\fR]] [\fB-huUV\fR] \fIfile...\fR
++\fBtoe\fR [\fB\-v\fR[\fIn\fR]] [\fB\-huUV\fR] \fIfile...\fR
+ .br
+ .SH DESCRIPTION
+ .PP
+ With no options, \fBtoe\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, your default terminfo directory is scanned. If you
+-also specify the -h option, a directory header will be issued as each
+-directory is entered.
++also specify the \fB\-h\fR option, a directory header will be issued as each
++directory is entered.
+ .PP
+ There are other options intended for use by terminfo file maintainers:
+ .TP
+-\fB-u\fR \fIfile\fR
++\fB\-u\fR \fIfile\fR
+ says to issue a report on dependencies in the given file. This report condenses
+ the `use' relation: each line consists of the primary name of a terminal that
+ has use capabilities, followed by a colon, followed by the
+ whitespace-separated primary names of all terminals which occur in those use
+ capabilities, followed by a newline
+ .TP
+-\fB-U\fR \fIfile\fR
++\fB\-U\fR \fIfile\fR
+ says to issue a report on reverse dependencies in the given file. This report
+ reverses the `use' relation: each line consists of the primary name of a
+ terminal that occurs in use capabilities, followed by a colon, followed by the
+ whitespace-separated primary names of all terminals which depend on it,
+ followed by a newline.
+ .TP
+-\fB-v\fR\fIn\fR
++\fB\-v\fR\fIn\fR
+ specifies that (verbose) output be written to standard error trace
+ information showing \fBtoe\fR's progress. The optional integer
+ \fIn\fR is a number from 1 to 10, interpreted as for \fBtic\fR(1).
+ .TP 5
+-\fB-V\fR
++\fB\-V\fR
+ reports the version of ncurses which was used in this program, and exits.
+ .SH FILES
+ .TP 5
+diff -urNd -urNd ncurses-5.3/man/tput.1 ncurses-5.3.20030906.orig/man/tput.1
+--- ncurses-5.3/man/tput.1 Sat Oct 12 08:53:20 2002
++++ ncurses-5.3.20030906.orig/man/tput.1 Tue May 13 20:08:22 2003
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2002,2003 Free 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,24 +27,24 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tput.1,v 1.18 2002/10/12 13:53:20 tom Exp $
++.\" $Id: tput.1,v 1.20 2003/05/11 00:32:53 tom Exp $
+ .TH tput 1 ""
+ .ds d @TERMINFO@
+ .ds n 1
+ .SH NAME
+ \fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
+ .SH SYNOPSIS
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
++\fBtput\fR [\fB\-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
+ .br
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
++\fBtput\fR [\fB\-T\fR\fItype\fR] \fBinit\fR
+ .br
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
++\fBtput\fR [\fB\-T\fR\fItype\fR] \fBreset\fR
+ .br
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
++\fBtput\fR [\fB\-T\fR\fItype\fR] \fBlongname\fR
+ .br
+-\fBtput -S\fR \fB<<\fR
++\fBtput \-S\fR \fB<<\fR
+ .br
+-\fBtput -V\fR
++\fBtput \-V\fR
+ .br
+ .SH DESCRIPTION
+ The \fBtput\fR utility uses the \fBterminfo\fR database to make the
+@@ -62,10 +62,10 @@
+ For a complete list of capabilities
+ and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
+ .TP
+-\fB-T\fR\fItype\fR
++\fB\-T\fR\fItype\fR
+ 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
++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.
+ .TP
+@@ -83,14 +83,14 @@
+ \fBtput\fR uses a table to decide which to pass as strings.
+ Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution.
+ If no parameters are given for the attribute,
+-\fBtput\fR writes the string without performing the substitution.
++\fBtput\fR writes the string without performing the substitution.
+ .TP
+-\fB-S\fR
++\fB\-S\fR
+ allows more than one capability per invocation of \fBtput\fR. The
+ capabilities must be passed to \fBtput\fR from the standard input
+ instead of from the command line (see example).
+ Only one \fIcapname\fR is allowed per line.
+-The \fB-S\fR option changes the
++The \fB\-S\fR option changes the
+ meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
+ EXIT CODES section).
+ .IP
+@@ -98,12 +98,12 @@
+ to decide whether to use \fBtparm\fR (3X),
+ and how to interpret the parameters.
+ .TP
+-\fB-V\fR
++\fB\-V\fR
+ reports the version of ncurses which was used in this program, and exits.
+ .TP
+ \fBinit\fR
+ If the \fBterminfo\fR database is present and an entry for the user's
+-terminal exists (see \fB-T\fR\fItype\fR, above), the following will
++terminal exists (see \fB\-T\fR\fItype\fR, above), the following will
+ occur: (1) if present, the terminal's initialization strings will be
+ output (\fBis1\fR, \fBis2\fR, \fBis3\fR, \fBif\fR, \fBiprog\fR), (2)
+ any delays (e.g., newline) specified in the entry will be set in the
+@@ -122,7 +122,7 @@
+ .TP
+ \fBlongname\fR
+ If the \fBterminfo\fR database is present and an entry for the
+-user's terminal exists (see \fB-T\fR\fItype\fR above), then the long name
++user's terminal exists (see \fB\-T\fR\fItype\fR 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
+ \fBterminfo\fR database [see \fBterm\fR(5)].
+@@ -139,7 +139,7 @@
+ the environmental variable \fBTERM\fR has been exported, as
+ illustrated on the \fBprofile\fR(5) manual page.
+ .TP 5
+-\fBtput -T5620 reset\fR
++\fBtput \-T5620 reset\fR
+ Reset an AT&T 5620 terminal, overriding the type of
+ terminal in the environmental variable \fBTERM\fR.
+ .TP 5
+@@ -154,7 +154,7 @@
+ \fBtput cols\fR
+ Print the number of columns for the current terminal.
+ .TP 5
+-\fBtput -T450 cols\fR
++\fBtput \-T450 cols\fR
+ Print the number of columns for the 450 terminal.
+ .TP 5
+ \fBbold=`tput smso` offbold=`tput rmso`\fR
+@@ -178,7 +178,7 @@
+ variable \fBTERM\fR.
+ .PP
+ .RS 5
+-\fBtput -S <<!\fR
++\fBtput \-S <<!\fR
+ .br
+ \fB> clear\fR
+ .br
+@@ -213,7 +213,7 @@
+ information, see the "Tabs and Initialization"
+ section of \fBterminfo\fR(5)
+ .SH EXIT CODES
+-If the \fB-S\fR option is used,
++If the \fB\-S\fR option is used,
+ \fBtput\fR checks for errors from each line,
+ and if any errors are found, will set the exit code to 4 plus the
+ number of lines with errors.
+@@ -221,7 +221,7 @@
+ No indication of which line failed can be given so
+ exit code \fB1\fR will never appear. Exit codes \fB2\fR, \fB3\fR, and
+ \fB4\fR retain their usual interpretation.
+-If the \fB-S\fR option is not used,
++If the \fB\-S\fR option is not used,
+ the exit code depends on the type of \fIcapname\fR:
+ .RS 5
+ .TP
+@@ -241,7 +241,7 @@
+ whether or not \fIcapname\fR is defined for this terminal \fItype\fR.
+ To determine if \fIcapname\fR is defined for this terminal \fItype\fR,
+ the user must test the value written to standard output.
+-A value of \fB-1\fR
++A value of \fB\-1\fR
+ means that \fIcapname\fR is not defined for this terminal \fItype\fR.
+ .TP
+ .I other
+@@ -262,17 +262,17 @@
+ \fB0\fR T{
+ (\fIcapname\fR is a numeric variable that is not specified in the
+ \fBterminfo\fR(\*n) database for this terminal type, e.g.
+-\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
++\fBtput \-T450 lines\fR and \fBtput \-T2621 xmc\fR)
+ T}
+ \fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
+ \fB2\fR usage error
+ \fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database
+ \fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR
+-\fB>4\fR error occurred in -S
++\fB>4\fR error occurred in \-S
+ =
+ .TE
+ .SH PORTABILITY
+-The \fBlongname\fR and \fB-S\fR options, and the parameter-substitution
++The \fBlongname\fR and \fB\-S\fR options, and the parameter-substitution
+ features used in the \fBcup\fR example, are not supported in BSD curses or in
+ AT&T/USL curses before SVr4.
+ .SH SEE ALSO
+diff -urNd -urNd ncurses-5.3/man/tset.1 ncurses-5.3.20030906.orig/man/tset.1
+--- ncurses-5.3/man/tset.1 Sat Sep 9 15:33:07 2000
++++ ncurses-5.3.20030906.orig/man/tset.1 Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2000,2003 Free 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,14 +26,14 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tset.1,v 1.12 2000/09/09 20:33:07 tom Exp $
++.\" $Id: tset.1,v 1.13 2003/05/11 00:32:53 tom Exp $
+ .TH tset 1 ""
+ .SH NAME
+ \fBtset\fR, \fBreset\fR - terminal initialization
+ .SH SYNOPSIS
+-tset [-IQVqrs] [-] [-e \fIch\fR] [-i \fIch\fR] [-k \fIch\fR] [-m \fImapping\fR] [\fIterminal\fR]
++tset [\-IQVqrs] [\-] [\-e \fIch\fR] [\-i \fIch\fR] [\-k \fIch\fR] [\-m \fImapping\fR] [\fIterminal\fR]
+ .br
+-reset [-IQVqrs] [-] [-e \fIch\fR] [-i \fIch\fR] [-k \fIch\fR] [-m \fImapping\fR] [\fIterminal\fR]
++reset [\-IQVqrs] [\-] [\-e \fIch\fR] [\-i \fIch\fR] [\-k \fIch\fR] [\-m \fImapping\fR] [\fIterminal\fR]
+ .SH DESCRIPTION
+ \&\fBTset\fR initializes terminals.
+ \fBTset\fR first determines the type of terminal that you are using.
+@@ -50,7 +50,7 @@
+ .PP
+ 4. The default terminal type, ``unknown''.
+ .PP
+-If the terminal type was not specified on the command-line, the -m
++If the terminal type was not specified on the command-line, the \fB\-m\fR
+ option mappings are then applied (see below for more information).
+ Then, if the terminal type begins with a question mark (``?''), the
+ user is prompted for confirmation of the terminal type. An empty
+@@ -81,50 +81,50 @@
+ .PP
+ The options are as follows:
+ .TP 5
+--q
++.B \-q
+ The terminal type is displayed to the standard output, and the terminal is
+ not initialized in any way. The option `-' by itself is equivalent but
+ archaic.
+-.TP 5
+--e
++.TP
++.B \-e
+ Set the erase character to \fIch\fR.
+-.TP 5
+--I
++.TP
++.B \-I
+ Do not send the terminal or tab initialization strings to the terminal.
+-.TP 5
+--Q
++.TP
++.B \-Q
+ Don't display any values for the erase, interrupt and line kill characters.
+ .TP
+-\fB-V\fR
++.B \-V
+ reports the version of ncurses which was used in this program, and exits.
+-.TP 5
+--i
++.TP
++.B \-i
+ Set the interrupt character to \fIch\fR.
+-.TP 5
+--k
++.TP
++.B \-k
+ Set the line kill character to \fIch\fR.
+-.TP 5
+--m
++.TP
++.B \-m
+ Specify a mapping from a port type to a terminal.
+ See below for more information.
+-.TP 5
+--r
++.TP
++.B \-r
+ Print the terminal type to the standard error output.
+-.TP 5
+--s
++.TP
++.B \-s
+ Print the sequence of shell commands to initialize the environment variable
+ \fBTERM\fR to the standard output.
+ See the section below on setting the environment for details.
+ .PP
+-The arguments for the -e, -i, and -k
++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''.
+ .SH SETTING THE ENVIRONMENT
+ It is often desirable to enter the terminal type and information about
+ the terminal's capabilities into the shell's environment.
+-This is done using the -s option.
++This is done using the \fB\-s\fR option.
+ .PP
+-When the -s option is specified, the commands to enter the information
++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
+ are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
+@@ -132,7 +132,7 @@
+ \fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR
+ or \fB.profile\fR files will initialize the environment correctly:
+
+- eval \`tset -s options ... \`
++ eval \`tset \-s options ... \`
+
+ .SH TERMINAL TYPE MAPPING
+ When the terminal is not hardwired into the system (or the current
+@@ -142,13 +142,13 @@
+ When \fBtset\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 -m option is to map
++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''.
+ .PP
+-The argument to the -m option consists of an optional port type, an
++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
+@@ -159,7 +159,7 @@
+ of the standard error output (which should be the control terminal).
+ The terminal type is a string.
+ .PP
+-If the terminal type is not specified on the command line, the -m
++If the terminal type is not specified on the command line, the \fB\-m\fR
+ mappings are applied to the terminal type. If the port type and baud
+ rate match the mapping, the terminal type specified in the mapping
+ replaces the current type. If more than one mapping is specified, the
+@@ -174,16 +174,16 @@
+ .PP
+ If no baud rate is specified, the terminal type will match any baud rate.
+ If no port type is specified, the terminal type will match any port type.
+-For example, \fB-m dialup:vt100 -m :?xterm\fR
++For example, \fB\-m dialup:vt100 \-m :?xterm\fR
+ will cause any dialup port, regardless of baud rate, to match the terminal
+ type vt100, and any non-dialup port type to match the terminal type ?xterm.
+ Note, because of the leading question mark, the user will be
+ queried on a default port as to whether they are actually using an xterm
+ terminal.
+ .PP
+-No whitespace characters are permitted in the -m option argument.
++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 -m option argument be placed within single quote characters,
++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 (``!'').
+ .SH HISTORY
+@@ -197,30 +197,33 @@
+ \fBtset\fR's most important use). This implementation behaves like 4.4BSD
+ tset, with a few exceptions specified here.
+ .PP
+-The -S option of BSD tset no longer works; it prints an error message to stderr
+-and dies. The -s option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
++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
++terminfo-based \fBncurses\fR, which makes \fBtset \-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 -A, -E, -h, -u and -v options were deleted from the \fBtset\fR
+-utility in 4.4BSD. None of them were documented in 4.3BSD and all are
+-of limited utility at best. The -a, -d, and -p options are similarly
++The \fB\-A\fR, \fB\-E\fR, \fB\-h\fR, \fB\-u\fR and \fB\-v\fR
++options were deleted from the \fBtset\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 -m option instead. The
+--n option remains, but has no effect. The -adnp options are therefore
++three options be changed to use the \fB\-m\fR option instead. The
++-n 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 -e, -i, and -k options without
++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 -Q
++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.
+ .SH ENVIRONMENT
+@@ -230,7 +233,7 @@
+ .TP 5
+ /etc/ttys
+ system port name to terminal type mapping database (BSD versions only).
+-.TP 5
++.TP
+ @TERMINFO@
+ terminal capability database
+ .SH SEE ALSO
+diff -urNd -urNd ncurses-5.3/menu/Makefile.in ncurses-5.3.20030906.orig/menu/Makefile.in
+--- ncurses-5.3/menu/Makefile.in Sat Jan 19 19:49:17 2002
++++ ncurses-5.3.20030906.orig/menu/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.36 2002/01/20 01:49:17 tom Exp $
++# $Id: Makefile.in,v 1.40 2003/08/23 23:25:32 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -55,6 +55,11 @@
+ includedir = @includedir@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
++LIBTOOL_INSTALL = @LIB_INSTALL@
++LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+
+ INSTALL = @INSTALL@
+ INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
+@@ -71,8 +76,7 @@
+ CPP = @CPP@
+ CFLAGS = @CFLAGS@
+
+-CPPFLAGS = @CPPFLAGS@ \
+- -DHAVE_CONFIG_H
++CPPFLAGS = -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -84,7 +88,7 @@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+-LINK = $(LIBTOOL) $(CC)
++LINK = $(LIBTOOL_LINK) $(CC)
+ LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
+
+ SHLIB_DIRS = -L../lib
+@@ -97,7 +101,7 @@
+ REL_VERSION = @cf_cv_rel_version@
+ ABI_VERSION = @cf_cv_abi_version@
+
+-RANLIB = @RANLIB@
++RANLIB = @LIB_PREP@
+
+ IMPORT_LIB = @IMPORT_LIB@
+ SHARED_LIB = @SHARED_LIB@
+diff -urNd -urNd ncurses-5.3/misc/csort ncurses-5.3.20030906.orig/misc/csort
+--- ncurses-5.3/misc/csort Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/misc/csort Tue May 13 20:08:22 2003
+@@ -0,0 +1,36 @@
++#!/bin/sh
++# $Id: csort,v 1.2 2002/10/19 21:42:09 tom Exp $
++##############################################################################
++# Copyright (c) 2002 Free 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. #
++##############################################################################
++#
++# override anything that might cause 'sort' to do the wrong thing...
++LANG=C; export LANG
++LANGUAGE=C; export LANGUAGE
++LC_ALL=C; export LC_ALL
++LC_CTYPE=C; export LC_CTYPE
++sort $*
+diff -urNd -urNd ncurses-5.3/misc/emx.src ncurses-5.3.20030906.orig/misc/emx.src
+--- ncurses-5.3/misc/emx.src Sat Aug 26 21:16:08 2000
++++ ncurses-5.3.20030906.orig/misc/emx.src Tue May 13 20:08:22 2003
+@@ -1,4 +1,4 @@
+-# $Id: emx.src,v 1.7 2000/08/27 02:16:08 jmcoopr Exp $
++# $Id: emx.src,v 1.8 2003/01/26 01:17:55 tom Exp $
+ # This is a reformatted copy of the terminfo source for OS/2 EMX from
+ # Juan Jose Garcia Ripoll <worm@arrakis.es>.
+ # http://www.arrakis.es/~worm/
+@@ -85,6 +85,7 @@
+ smpch=\E[11m,
+ smso=\E[7m,
+ smul=\E[4m,
++ use=klone+acs,
+
+ # Highlight controls corresponding to the ANSI.SYS standard. *All*
+ # console drivers for Intel boxes obey these. Does not assume \E[11m will
+@@ -103,6 +104,7 @@
+ smacs=\E[12m,
+ smso=\E[7m,
+ smul=\E[4m,
++ use=klone+acs,
+
+ # ANSI.SYS color control.
+ # The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
+@@ -113,8 +115,17 @@
+ op=\E[37;40m,
+ 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,
++
++# This is better than klone+color, it doesn't assume white-on-black as the
++# default color pair, but many `ANSI' terminals don't grok the <op> cap.
++ecma+color|color control for ECMA-48-compatible terminals,
++ AX,
++ colors#8,
++ ncv#3,
++ pairs#64,
++ op=\E[39;49m,
++ setab=\E[4%p1%dm,
++ setaf=\E[3%p1%dm,
+
+ #### ANSI/ECMA-48 terminals and terminal emulators
+ #
+@@ -209,7 +220,9 @@
+ # no_color_video to inform the application that standout(1), underline(2)
+ # reverse(4) and invisible(64) don't work with color.
+ emx-base|DOS special keys,
++ bce,
+ bw,
++ it#8,
+ ncv#71,
+ bel=^G,
+ ka1=\0G,
+@@ -293,7 +306,7 @@
+ # me <-> sgr0 turn off all atributes
+ #
+ # On my terminal, \E[4m looks dim.
+-ansi|ANSI.SYS color,
++ansi-emx|ANSI.SYS color,
+ blink=\E[5m,
+ bold=\E[1m,
+ kmous=\E[M,
+@@ -319,17 +332,17 @@
+ smul=\E[1;31;47m,
+ use=emx-base,
+ os2|OS/2-emx ANSI.SYS,
+- cuu=\E[%p1%dA,
+- cuu1=\E[A,
++ cub=\E[%p1%dD,
++ cub1=\E[D,
+ cud=\E[%p1%dB,
+ cud1=\E[B,
+ cuf=\E[%p1%dC,
+ cuf1=\E[C,
+- cub=\E[%p1%dD,
+- cub1=\E[D,
+- sc=\E[s,
++ cuu=\E[%p1%dA,
++ cuu1=\E[A,
+ rc=\E[u,
+- use=ansi,
++ sc=\E[s,
++ use=ansi-emx,
+ use=mono,
+ mono|ANSI.SYS mono,
+ blink=\E[5m,
+@@ -353,7 +366,7 @@
+ smul=\E[1;31;40m,
+ use=mono,
+ # nice colors for Emacs (white on blue, mode line white on cyan)
+-ansi-color-2|ANSI.SYS color 2,
++ansi-color-2-emx|ANSI.SYS color 2,
+ rmcup=\E[0m,
+ rmso=\E[0;37;44m,
+ rmul=\E[0m,
+@@ -361,9 +374,9 @@
+ smcup=\E[0;37;44m,
+ smso=\E[1;37;46m,
+ smul=\E[1;31;40m,
+- use=ansi,
++ use=ansi-emx,
+ # nice colors for Emacs (white on black, mode line black on cyan)
+-ansi-color-3|ANSI.SYS color 3,
++ansi-color-3-emx|ANSI.SYS color 3,
+ rmcup=\E[0m,
+ rmso=\E[0m,
+ rmul=\E[0m,
+@@ -371,7 +384,7 @@
+ smcup=\E[0m,
+ smso=\E[30;46m,
+ smul=\E[1;31;40m,
+- use=ansi,
++ use=ansi-emx,
+
+ #### X terminal emulators
+ #
+@@ -437,7 +450,7 @@
+ # xterm's internal mouse-tracking facility; ncurses will interpret the
+ # following three bytes of mouse status information.
+ # From: Eric S. Raymond <esr@snark.thyrsus.com> 14 Dec 1995
+-xterm|vs100|xterm terminal emulator (X11R6 Window System),
++xterm-r6|xterm terminal emulator (X11R6 Window System),
+ am,
+ km,
+ mir,
+@@ -488,7 +501,15 @@
+ 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~,
+@@ -496,6 +517,7 @@
+ kf7=\E[18~,
+ kf8=\E[19~,
+ kf9=\E[20~,
++ kfnd=\E[1~,
+ khome=\EO\0,
+ kich1=\E[2~,
+ kmous=\E[M,
+@@ -545,6 +567,7 @@
+ sc=\E7,
+ tsl=\E[?E\E[?%i%dT,
+ use=xterm,
++ 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,
+@@ -758,7 +781,6 @@
+ cup=\EE%p1%d;%p2%d;,
+ cuu=\Ep-%p1%d;,
+ cuu1=\EA,
+- cvvis=\Ea,
+ dch=\EI%p1%d;,
+ dch1=\EI1;,
+ dl=\ER%p1%d;,
+@@ -816,10 +838,21 @@
+ rmso=\ES,
+ rmul=\ES,
+ rs2=\ES\Es0;\Er0;,
+- setab=\Es%i%p1%d; setaf=\Er%i%p1%d;,
++ setab=\Es%i%p1%d;,
++ setaf=\Er%i%p1%d;,
+ sgr0=\ES,
+ smacs=\0,
+ smir=\EY,
+ smso=\ES\ET,
+ smul=\ES\EV,
+ tbc=\Ej,
++###############################################################################
++# Aliases which conflict with terminfo.src
++ansi|ANSI.SYS color,
++ use=ansi-emx,
++ansi-color-2|ANSI.SYS color 2,
++ use=ansi-color-2-emx,
++ansi-color-3|ANSI.SYS color 3,
++ use=ansi-color-3-emx,
++xterm|vs100|xterm terminal emulator (X11R6 Window System),
++ use=xterm-r6,
+diff -urNd -urNd ncurses-5.3/misc/run_tic.in ncurses-5.3.20030906.orig/misc/run_tic.in
+--- ncurses-5.3/misc/run_tic.in Sat Oct 13 19:44:33 2001
++++ ncurses-5.3.20030906.orig/misc/run_tic.in Fri Sep 12 16:42:59 2003
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+ ##############################################################################
+-# Copyright (c) 1998,2000 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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 1996,2000
+ #
+-# $Id: run_tic.in,v 1.11 2001/10/14 00:44:33 tom Exp $
++# $Id: run_tic.in,v 1.15 2003/09/06 22:31:44 Dan.Kegel Exp $
+ # This script is used to install terminfo.src using tic. We use a script
+ # because the path checking is too awkward to do in a makefile.
+ #
+@@ -62,10 +62,14 @@
+ # on the host's copy of tic to compile the terminfo database.
+ if test "$THAT_CC" = "$THIS_CC" ; then
+ case "$PATH" in
+-:*) PATH=../progs:${DESTDIR}$bindir$PATH ;;
+-*) PATH=../progs:${DESTDIR}$bindir:$PATH ;;
++:*) PATH=../progs:../lib:${DESTDIR}$bindir$PATH ;;
++*) PATH=../progs:../lib:${DESTDIR}$bindir:$PATH ;;
+ esac
+ export PATH
++SHLIB="sh $srcdir/shlib"
++else
++# Cross-compiling, so don't set PATH or run shlib.
++SHLIB=
+ fi
+
+ #
+@@ -81,7 +85,7 @@
+ umask 022
+
+ # Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
+-TICDIR=`echo $TERMINFO | sed -e 's@/share/@/lib/@'`
++TICDIR=`echo $TERMINFO | sed -e 's%/share/%/lib/%'`
+
+ # Remove the old terminfo stuff; we don't care if it existed before, and it
+ # would generate a lot of confusing error messages if we tried to overwrite it.
+@@ -91,11 +95,11 @@
+
+ # 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=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'`
+ if test "x$TABSET" != "x/usr/share/tabset" ; then
+ echo '** adjusting tabset paths'
+ TMP=${TMPDIR-/tmp}/$$
+- sed -e s:/usr/share/tabset:$TABSET:g $source >$TMP
++ sed -e s%/usr/share/tabset%$TABSET%g $source >$TMP
+ trap "rm -f $TMP" 0 1 2 5 15
+ source=$TMP
+ fi
+@@ -111,7 +115,7 @@
+ problems for older ncurses applications.
+
+ EOF
+-if ( $srcdir/shlib tic$suffix -s -o $TERMINFO $source )
++if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
+ then
+ echo '** built new '$TERMINFO
+ else
+@@ -140,13 +144,15 @@
+ cd ${DESTDIR}$prefix
+ # Construct a symbolic link that only assumes $ticdir has the
+ # same $prefix as the other installed directories.
+- RELATIVE=`echo $ticdir|sed -e 's:^'$prefix'/::'`
++ RELATIVE=`echo $ticdir|sed -e 's%^'$prefix'/%%'`
+ if test "$RELATIVE" != "$ticdir" ; then
+- RELATIVE=../`echo $ticdir|sed -e 's:^'$prefix'/::' -e 's:^/::'`
++ RELATIVE=../`echo $ticdir|sed -e 's%^'$prefix'/%%' -e 's%^/%%'`
+ fi
+ if ( @LN_S@ $RELATIVE $TICDIR )
+ then
+- echo '** linked '$TICDIR' for compatibility'
++ echo '** sym-linked '$TICDIR' for compatibility'
++ else
++ echo '** could not sym-link '$TICDIR' for compatibility'
+ fi
+ fi
+ fi
+diff -urNd -urNd ncurses-5.3/misc/shlib ncurses-5.3.20030906.orig/misc/shlib
+--- ncurses-5.3/misc/shlib Sat May 20 18:01:17 2000
++++ ncurses-5.3.20030906.orig/misc/shlib Sun Jul 20 14:02:09 2003
+@@ -29,7 +29,7 @@
+ #
+ # Author: Thomas E. Dickey <dickey@clark.net> 1996
+ #
+-# $Id: shlib,v 1.6 2000/05/20 23:01:17 tom Exp $
++# $Id: shlib,v 1.7 2003/07/19 22:58:14 tom Exp $
+ # Use this script as a wrapper when running executables linked to shared
+ # libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
+ # the soname's path within the linked executable (such as IRIX), e.g,
+@@ -84,4 +84,11 @@
+ fi
+ export LD_LIBRARY_PATH
+ fi
++
++# cygwin doesn't use LD_LIBRARY_PATH, but does use PATH
++if test -n "$PATHEXT" ; then
++ PATH=$LD_LIBRARY_PATH:$PATH;
++ export PATH
++fi
++
+ eval "$*"
+diff -urNd -urNd ncurses-5.3/misc/terminfo.src ncurses-5.3.20030906.orig/misc/terminfo.src
+--- ncurses-5.3/misc/terminfo.src Sat Oct 5 13:40:53 2002
++++ ncurses-5.3.20030906.orig/misc/terminfo.src Sun Jul 20 14:02:09 2003
+@@ -10,7 +10,7 @@
+ #
+ #------------------------------------------------------------------------------
+ # Version 10.2.1
+-# $Date: 2002/10/05 18:40:53 $
++# $Date: 2003/07/19 19:44:24 $
+ # terminfo syntax
+ #
+ # Eric S. Raymond (current maintainer)
+@@ -562,7 +562,7 @@
+ #
+ # This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
+ # documentation (except for the keyboard key reassignment feature, which
+-# doen't fit the <pfkey> model well). The klone+acs sequences were valid
++# doesn't fit the <pfkey> model well). The klone+acs sequences were valid
+ # though undocumented. The <pfkey> capability is untested but should work for
+ # keys F1-F10 (%p1 values outside this range will yield unpredictable results).
+ # From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
+@@ -1468,7 +1468,9 @@
+ 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, sgr0=\2330m,
++ rmso=\2330m, rmul=\2330m,
++ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
++ sgr0=\2330m,
+
+ # NetBSD "wscons" emulator in vt220 mode
+ # These are micro-minimal and probably need to be redone for real
+@@ -1484,7 +1486,7 @@
+ # DECstation/pmax.
+ rcons|BSD rasterconsole,
+ use=sun-il,
+-# Color version of above. Color currenly only provided by NetBSD.
++# Color version of above. Color currently only provided by NetBSD.
+ rcons-color|BSD rasterconsole with ANSI color,
+ bce,
+ colors#8, pairs#64,
+@@ -1809,6 +1811,44 @@
+ # | $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,
++#
+ # And here, for those of you with orphaned VT100s lacking documentation, is
+ # a description of the soft switches invoked when you do `Set Up'.
+ #
+@@ -1853,17 +1893,15 @@
+ 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, ka1=\EOq,
+- ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
+- kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
+- kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
++ 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[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,
+@@ -2132,22 +2170,21 @@
+ 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[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=\177, kc1=\EOq, kc3=\EOs,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kel=\E[4~, kent=\EOM, 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~,
+- 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,
++ 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[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+ 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$}\E[H\E[K,
++ 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[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+@@ -2584,6 +2621,13 @@
+ dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
+ use=ms-vt100,
+
++# a minimal subset of a vt100 (compare with "news-unk).
++tt|tkterm|Don Libes' tk text widget terminal emulator,
++ clear=\E[H\E[J, cr=^M, 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, rmso=\E[m,
++ smso=\E[7m,
++
+ #### X terminal emulators
+ #
+ # You can add the following line to your .Xdefaults to change the terminal type
+@@ -2691,9 +2735,8 @@
+ 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>,
+- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbeg=\EOE, kbs=^H, kc1=\EOq,
+- kc3=\EOs, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\177, kend=\EOF, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
++ 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~,
+@@ -2710,7 +2753,7 @@
+ 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, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
+- vpa=\E[%i%p1%dd, use=ecma+color,
++ vpa=\E[%i%p1%dd, 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.
+@@ -2752,8 +2795,8 @@
+
+ xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System),
+ npc,
+- kDC=\E[3;2~, kEND=\EO2F, kHOM=\EO2H, kIC=\E[2;2~,
+- kLFT=\EO2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO2C,
++ 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,
+ kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+ kcuu1=\EOA, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf13=\EO2P, kf14=\EO2Q,
+@@ -2819,6 +2862,14 @@
+ xterm-88color|xterm with 88 colors,
+ colors#88, pairs#88, use=xterm-256color,
+
++# 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-xfree86,
++xterm-1003|testing xterm-mouse,
++ XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-xfree86,
++
+ # 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.
+@@ -2895,15 +2946,14 @@
+ # + uses DEC-style control sequences for the application keypad.
+ #
+ xterm-vt220|XFree86 xterm emulating vt220,
+- ka1=\EOw, ka3=\EOy, kbeg=\EOu, kc1=\EOq, kc3=\EOs, kcbt=\E[Z,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[4~,
+- kent=\EOM, 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~,
+- use=xterm-basic,
++ kbeg=\EOu, 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-basic,
++ use=vt220+keypad,
+
+ xterm-vt52|XFree86 xterm emulating dec vt52,
+ cols#80, it#8, lines#24,
+@@ -2951,7 +3001,7 @@
+ # -- MATSUMOTO Shoji)
+ kterm|kterm kanji terminal emulator (X window system),
+ eslok, hs,
+- acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
+ kmous=\E[M, rc=\E8, rmacs=\E(B, sc=\E7, smacs=\E(0,
+ tsl=\E[?E\E[?%i%dT, use=xterm-r6, use=ecma+color,
+@@ -2981,9 +3031,8 @@
+ 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, ka1=\EOw, ka3=\EOy,
+- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\EOD, kcud1=\EOB,
+- kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kent=\EOM, kf1=\E[11~,
++ 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~,
+@@ -2995,7 +3044,7 @@
+ 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, 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,
++ smul=\E[4m, use=ecma+color, use=vt220+keypad,
+
+ # 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
+@@ -3005,7 +3054,9 @@
+ #
+ # Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
+ # colors; note that this is not compatible with the 5.2 version.
+-nxterm|xterm-color|generic color xterm,
++# 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,
+
+@@ -3146,10 +3197,9 @@
+ 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,
+ kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$,
+- kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H,
+- kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
+- kend=\E[8~, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
++ kPRV=\E[5$, kRIT=\E[c, kbs=^H, kcbt=\E[Z, 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~, kf3=\E[13~,
+@@ -3162,10 +3212,22 @@
+ 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, sgr0=\E[0m\017, smacs=^N,
+ smcup=\E7\E[?47h, smir=\E[4h, smkx=\E=, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g,
++ smul=\E[4m, tbc=\E[3g, use=vt220+keypad,
+ rxvt|rxvt terminal emulator (X Window System),
+ ncv@,
+- sgr0=\E[m\017, use=rxvt-basic, use=ecma+color,
++ cvvis=\E[?25h, 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-xpm|rxvt terminal emulator (X Window System),
++ use=rxvt,
++rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
++ acsc=0\333+\257\,\256-\^`\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=0\333+\257\,\256-\^`\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,
+
+ # This variant is supposed to work with rxvt 2.7.7 when compiled with
+ # NO_BRIGHTCOLOR defined. rxvt needs more work...
+@@ -3227,19 +3289,17 @@
+ 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, ka1=\EOq, ka3=\EOs, kb2=\EOr,
+- kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB,
+- kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kent=\EOM, kf0=\EOy,
+- 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, 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,
++ 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,
++ smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
+
+ xtermc|xterm terminal emulator (color),
+ colors#8, ncv#7, pairs#64,
+@@ -3332,7 +3392,7 @@
+ # print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings
+ # indicate that it emulates more than one terminal, but incompletely.
+ #
+-# This is dapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net>
++# 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)
+@@ -3349,19 +3409,71 @@
+ 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, ka1=\EOq,
+- ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
+- kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, 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,
++ 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,
++ 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, 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"
++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, 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,
++
+ #### MGR
+ #
+ # MGR is a Bell Labs window system lighter-weight than X.
+@@ -3467,11 +3579,18 @@
+ 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, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7,
+- sgr0=\E[m, smacs=^N, smir=\E[4h, smkx=\E[?1h\E=,
+- smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B, S0=\E(%p1%c,
++ 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, sc=\E7, sgr0=\E[m, 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, use=screen,
++screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
++ dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
+
+ # Read the fine manpage:
+ # When screen tries to figure out a terminal name for
+@@ -3508,9 +3627,11 @@
+ screen.xterm-r6|screen customized for X11R6 xterm,
+ bw, use=xterm-r6,
+ # Color applications running in screen and TeraTerm do not play well together
+-# on Solaris.
++# on Solaris because Sun's curses implementation gets confused.
+ screen.teraterm|disable ncv in teraterm,
+- ncv#127, use=screen,
++ 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,
+
+ screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
+ cols#132, use=screen,
+@@ -3631,7 +3752,7 @@
+ #### Pilot Pro Palm-Top
+ #
+ # Termcap for Top Gun Telnet and SSH on the Palm Pilot.
+-# http://www.isaac.cs.berkeley.edu/pilot/tgtelnet.html
++# http://www.ai/~iang/TGssh/
+ pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
+ OTbs, am, xenl,
+ cols#39, lines#16,
+@@ -3763,6 +3884,9 @@
+ 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,
+
+ #### Iris consoles
+ #
+@@ -4032,62 +4156,79 @@
+ #### Non-Unix Consoles
+ #
+
++### EMX termcap.dat compatibility modes
++#
++# Keypad: Home=\0G Up=\0H PrPag=\0I
++# ka1,kh kcuu1 kpp,ka3
++#
++# Left=\0K 5=\0L Right=\0M
++# kcub1 kb2 kcuf1
++#
++# End=\0O Down=\0P NxPag=\0Q
++# kc1,kend kcud1 kc3,knp
++#
++# Ins=\0R Del=\0S
++# kich1 kdch1
++#
++# On keyboard with 12 function keys,
++# shifted f-keys: F13-F24
++# control f-keys: F25-F36
++# alt f-keys: F37-F48
++# The shift/control/alt keys do not modify each other, but alt overrides both,
++# and control overrides shift.
++#
++# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
++# no_color_video to inform the application that standout(1), underline(2)
++# reverse(4) and invisible(64) don't work with color.
++emx-base|DOS special keys,
++ bce, bw,
++ it#8, ncv#71,
++ bel=^G, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
++ kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
++ kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
++ kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
++ kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
++ kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
++ kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
++ kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
++ kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
++ kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
++ kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
++ kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
++ use=ansi.sys,
++
+ # 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).
+ #
+ # Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
+ ansi-emx|ANSI.SYS color,
+- am, bce, eo, mir, msgr, xenl, xon,
++ 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, 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, 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,
++ 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,
+- am, bce, eo, mir, msgr, xenl, xon,
+- colors#8, cols#80, it#8, lines#25, pairs#64,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[0;37;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, 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, kspd=^Z, nel=^M^J, rev=\E[1;37;46m,
+- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;37;44m,
+- rmul=\E[0;37;44m, rs1=\Ec, setab=\E[4%p1%dm,
+- setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smir=\E[4h,
+- smpch=\E[11m, smso=\E[1;37;46m, smul=\E[1;36;44m,
+- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
++ 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,
+- am, bce, eo, mir, msgr, xenl, xon,
+- colors#8, cols#80, it#8, lines#25, pairs#64,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[0;37;40m\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, 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, kspd=^Z, nel=^M^J, rev=\E[1;37;46m,
+- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;37;40m,
+- rmul=\E[0;37;40m, rs1=\Ec, setab=\E[4%p1%dm,
+- setaf=\E[3%p1%dm, sgr0=\E[0;10m, smir=\E[4h,
+- smpch=\E[11m, smso=\E[1;37;46m, smul=\E[0;36;40m,
+- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
++ 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,
+@@ -4117,31 +4258,112 @@
+ # 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
+ cygwin|ansi emulation for Cygwin,
+- am, eo, in, msgr, xon,
+- colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64,
++ am, hs, in, 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, 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, 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, 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,
++ bel=^G, bold=\E[1m, 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,
++ 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, rmir=\E[4l, rmpch=\E[10m,
++ 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, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
+- smul=\E[4m, u6=\E[%i%d;%dR, u7=\E[6n, u9=\E[c,
++ sgr0=\E[0;10m, smacs=\E11m, smcup=\E7\E[?47h, smir=\E[4h,
++ smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
++ u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c,
+ vpa=\E[%i%p1%dd,
+
++# I've supplied this so that you can help test new values and add other
++# features. Cheers, earnie_boyd@yahoo.com.
++#
++# 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[2g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c,
++ u9=\E[c, vpa=\E[%i%p1%dd,
++
+ # 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
+@@ -6939,9 +7161,8 @@
+ 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, ka1=\EOw, ka3=\EOy,
+- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K, kent=\EOM,
++ 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,
+@@ -6956,7 +7177,7 @@
+ 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,
++ tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad,
+ #
+ # This terminal description uses the non-hidden attribute mode
+ # (with magic cookie).
+@@ -7008,23 +7229,22 @@
+ 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=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, 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$<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,
++ 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,
++ tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad,
+ #
+ # Wyse 85 with visual bell.
+ wy85-vb|wyse85-vb|wyse 85 with visible bell,
+@@ -7113,25 +7333,24 @@
+ 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, ka1=\EOw, ka3=\EOy, kb2=\EOu,
+- kbs=^H, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kent=\EOM,
+- 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,
++ 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,
+ #
+ # Wyse 185 with 24 data lines and top status (terminal status)
+ wy185-24|wyse185-24|wyse 185 with 24 data lines,
+@@ -7322,16 +7541,14 @@
+ # Function key set for the VT-320 (and wy85) compatible keyboard
+ #
+ wy370-105k|Wyse 370 with 105 key keyboard,
+- ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kent=\EOM, 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~,
++ 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=wy370-nk, use=vt220+keypad,
+ #
+ # Function key set for the PC compatible keyboard
+ #
+@@ -7435,26 +7652,24 @@
+ 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, ka1=\EOw, ka3=\EOu, kb2=\EOy,
+- kbs=^H, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D,
++ 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, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
++ 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~,
+- 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,
+- rmso=\E[m, rmul=\E[24m,
++ 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,
++ 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,
+@@ -7976,17 +8191,15 @@
+ 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, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H,
+- kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv,
+- kf8=\EOl, kf9=\EOw, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
+- rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
++ 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,
+
+ #
+ # Teletype Model 5420 -- A souped up 5410, with multiple windows,
+@@ -11380,16 +11593,14 @@
+ 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,
+- ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM,
+- kf0=\EOy, kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+- kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
+- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
++ 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,
+
+@@ -13192,19 +13403,17 @@
+ 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>,
+- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, 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,
++ 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>,
++ 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>,
+@@ -13242,15 +13451,14 @@
+ 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>,
+- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kent=\EOM, kf0=\EOy, 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~, 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~,
++ 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~,
+@@ -13263,6 +13471,7 @@
+ 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>,
+@@ -13298,27 +13507,27 @@
+ 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>,
+- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kent=\EOM, kf0=\EOy, 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~, 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,
++ 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>,
+@@ -13406,7 +13615,7 @@
+ #
+ ncr260wy350pp|NCR 2900_260 wyse 350,
+ am, bw, hs, km, mc5i, mir, msgr, xon,
+- colors#16, cols#80, lines#24, ncv#33, nlab#32, xmc#1,
++ 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>,
+@@ -14005,17 +14214,15 @@
+ 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, ka1=\EOq,
+- ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
+- kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
+- kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
++ 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:
+@@ -14831,15 +15038,14 @@
+ 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,
+- ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=\177, kc1=\EOp, kc3=\EOn,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m,
+- ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ 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%;m,
+ sgr0=\E[m\017, smam=\E[?7h, 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,
++ u8=\E[?1;2c, u9=\E[c, use=vt100+pfkeys,
+
+ nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+@@ -15026,14 +15232,14 @@
+ 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, ka1=\EOq,
+- ka3=\EOs, kb2=\EOr, kbs=\177, kc1=\EOp, kc3=\EOn, 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,
++ 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\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g,
++ smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
+
+ xnuppc+c|Darwin PowerPC Console ANSI color support,
+ colors#8, ncv#32, pairs#64,
+@@ -17642,7 +17848,7 @@
+ # respectively, to be able to restore them when color changes
+ # (because any color change turns off ALL attributes)
+ # 3. <bold> and <rev> sequences alternate modes,
+-# rather then simply entering them. Thus we have to check the
++# rather than simply entering them. Thus we have to check the
+ # static register B and H to determine the status, before sending the
+ # escape sequence.
+ # 4. <sgr0> now must set the status of all 3 register (A,B,H) to zero
+@@ -17744,15 +17950,12 @@
+ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+ cuu1=\E[A$<2>, dl1=\E[M$<99>, ed=\E[J$<50>, el=\E[K$<3>,
+ el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH,
+- il1=\E[L$<99>, ind=^J, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H,
+- kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv,
+- kf8=\EOl, kf9=\EOw, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
++ il1=\E[L$<99>, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB,
++ kcuf1=\EOC, kcuu1=\EOA, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+ rmkx=\E[?1l\E>, rmso=\E[m\s,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
+ smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m\s,
+- tbc=\E[3g,
++ tbc=\E[3g, use=vt100+fnkeys,
+
+ # The official PC terminal emulator program of the AT&T Product Centers.
+ # Note - insert mode commented out - doesn't seem to work on AT&T PC.
+@@ -18325,12 +18528,12 @@
+ # (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD
+ # abbreviation.
+ #
+-# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLD
++# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLU
+ # abbreviation.
+ #
+ # (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
+ #
+-# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM),
++# (W) RM/SM modes are as follows: 1 = Guarded Area Transfer Mode (GATM),
+ # 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
+ # 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
+ # 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
+@@ -19536,9 +19739,46 @@
+ # * scaled the linux-c terminfo entry to match linux-c-nc, i.e., the
+ # r/g/b parameters of initc are in the range 0 to 1000 -TD
+ #
+-# 2002-1005
++# 2002-10-05
+ # * minor fix for scale-factor of linux-c and linux-c-nc -TD
+ #
++# 2002-11-09
++# * split-out vt100+keypad and vt220+keypad, fix interchanged ka3/kb2
++# in the latter -TD
++#
++# 2002-11-16
++# * add entries for mterm (mterm, mterm-ansi, decansi) -TD
++# * ncr260wy350pp has only 16 color pairs -TD
++# * add sun-type4 from NetBSD -TD
++# * update xterm-xfree86 to current (patch 170) -TD
++# * add screen-bce, screen-s entries -TD
++# * add xterm-1002, xterm-1003 entries -TD
++#
++# 2003-01-11
++# * update homepage for Top Gun Telnet/SSH
++#
++# 2003-01-25
++# * reduce duplication in emx entries, added emx-base -TD
++#
++# 2003-05-24
++# * corrected acs for screen.teraterm -TD
++# * add tkterm entry -TD
++#
++# 2003-07-15
++# * cygwin changes from Charles Wilson:
++# misc/terminfo.src (nxterm|xterm-color): make xterm-color
++# primary instead of nxterm, to match XFree86's xterm.terminfo
++# usage and to prevent circular links.
++# (rxvt): add additional codes from rxvt.org.
++# (rxvt-color): new alias
++# (rxvt-xpm): new alias
++# (rxvt-cygwin): like rxvt, but with special acsc codes.
++# (rxvt-cygwin-native): ditto. rxvt may be run under XWindows, or
++# with a "native" MSWin GUI. Each takes different acsc codes,
++# which are both different from the "normal" rxvt's acsc.
++# (cygwin): cygwin-in-cmd.exe window. Lots of fixes.
++# (cygwinDBG): ditto.
++#
+ # The following sets edit modes for GNU EMACS.
+ # Local Variables:
+ # fill-prefix:"\t"
+diff -urNd -urNd ncurses-5.3/mk-1st.awk ncurses-5.3.20030906.orig/mk-1st.awk
+--- ncurses-5.3/mk-1st.awk Sat Apr 20 12:32:47 2002
++++ ncurses-5.3.20030906.orig/mk-1st.awk Fri Sep 12 16:42:40 2003
+@@ -1,4 +1,4 @@
+-# $Id: mk-1st.awk,v 1.55 2002/04/20 17:32:47 tom Exp $
++# $Id: mk-1st.awk,v 1.60 2003/08/30 20:48:52 tom Exp $
+ ##############################################################################
+ # Copyright (c) 1998,2000,2002 Free Software Foundation, Inc. #
+ # #
+@@ -27,7 +27,7 @@
+ # authorization. #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2000
++# Author: Thomas E. Dickey 1996,1997,2000,2002
+ #
+ # Generate list of objects for a given model library
+ # Variables:
+@@ -38,7 +38,7 @@
+ # MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
+ # depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
+ # subset ("none", "base", "base+ext_funcs" or "termlib")
+-# target (cross-compile target, if any)
++# host (cross-compile host, if any)
+ # ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
+ # ShlibVerInfix ("yes" or "no", determines location of version #)
+ # DoLinks ("yes", "reverse" or "no", flag to add symbolic links)
+@@ -110,7 +110,7 @@
+ if (using == 0) {
+ if (found == 0) {
+ print ""
+- print "# generated by mk-1st.awk"
++ printf "# generated by mk-1st.awk (subset=%s)\n", subset
+ print ""
+ }
+ using = 1
+@@ -162,8 +162,8 @@
+ if ( MODEL == "SHARED" )
+ {
+ if (ShlibVerInfix == "cygdll") {
+- abi_name = sprintf("%s%s$(ABI_VERSION)%s", prefix, name, suffix);
+- rel_name = sprintf("%s%s$(REL_VERSION)%s", prefix, name, suffix);
++ abi_name = sprintf("%s%s$(ABI_VERSION)%s", "cyg", name, suffix);
++ rel_name = sprintf("%s%s$(REL_VERSION)%s", "cyg", name, suffix);
+ imp_name = sprintf("%s%s%s.a", prefix, name, suffix);
+ } else if (ShlibVerInfix == "yes") {
+ abi_name = sprintf("%s%s.$(ABI_VERSION)%s", prefix, name, suffix);
+@@ -194,7 +194,7 @@
+ print "\t-@rm -f $@";
+ }
+ if ( subset == "termlib") {
+- printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(TINFO_LIST)\n", OBJS
++ printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(TINFO_LIST) $(LDFLAGS)\n", OBJS
+ } else {
+ printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(SHLIB_LIST) $(LDFLAGS)\n", OBJS
+ }
+@@ -233,9 +233,15 @@
+
+ if ( overwrite == "yes" && name == "ncurses" )
+ {
+- ovr_name = sprintf("libcurses%s", suffix)
+- printf "\t@echo linking %s to %s\n", end_name, ovr_name
+- printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, end_name, ovr_name
++ if ( ShlibVer == "cygdll" ) {
++ ovr_name = sprintf("libcurses%s.a", suffix)
++ printf "\t@echo linking %s to %s\n", imp_name, ovr_name
++ printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, imp_name, ovr_name
++ } else {
++ ovr_name = sprintf("libcurses%s", suffix)
++ printf "\t@echo linking %s to %s\n", end_name, ovr_name
++ printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, end_name, ovr_name
++ }
+ }
+ if ( ldconfig != "" ) {
+ printf "\t- test -z \"$(DESTDIR)\" && %s\n", ldconfig
+@@ -257,7 +263,11 @@
+ removelinks("$(DESTDIR)$(libdir)")
+ if ( overwrite == "yes" && name == "ncurses" )
+ {
+- ovr_name = sprintf("libcurses%s", suffix)
++ if ( ShlibVer == "cygdll" ) {
++ ovr_name = sprintf("libcurses%s.a", suffix)
++ } else {
++ ovr_name = sprintf("libcurses%s", suffix)
++ }
+ printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name
+ }
+ }
+@@ -277,19 +287,19 @@
+ }
+ end_name = lib_name;
+ printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
+- printf "\tcd ../lib && $(LIBTOOL) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR)\n", compile, lib_name, OBJS
++ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(SHLIB_LIST)\n", compile, lib_name, OBJS
+ print ""
+ print "install \\"
+ print "install.libs \\"
+ printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
+ printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
+- printf "\tcd ../lib; $(LIBTOOL) $(INSTALL_DATA) %s $(DESTDIR)$(libdir)\n", lib_name
++ printf "\tcd ../lib; $(LIBTOOL_INSTALL) $(INSTALL) %s $(DESTDIR)$(libdir)\n", lib_name
+ print ""
+ print "uninstall \\"
+ print "uninstall.libs \\"
+ printf "uninstall.%s ::\n", name
+ printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
+- printf "\t-@$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
++ printf "\t-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
+ }
+ else
+ {
+@@ -297,7 +307,7 @@
+ printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
+ printf "\t$(AR) $(AR_OPTS) $@ $?\n"
+ printf "\t$(RANLIB) $@\n"
+- if ( target == "vxworks" )
++ if ( host == "vxworks" )
+ {
+ printf "\t$(LD) $(LD_OPTS) $? -o $(@:.a=.o)\n"
+ }
+@@ -314,7 +324,7 @@
+ printf "\t(cd $(DESTDIR)$(libdir) && $(LN_S) libncurses.a libcurses.a)\n"
+ }
+ printf "\t$(RANLIB) $(DESTDIR)$(libdir)/%s\n", lib_name
+- if ( target == "vxworks" )
++ if ( host == "vxworks" )
+ {
+ printf "\t@echo installing ../lib/lib%s.o as $(DESTDIR)$(libdir)/lib%s.o\n", name, name
+ printf "\t$(INSTALL_DATA) ../lib/lib%s.o $(DESTDIR)$(libdir)/lib%s.o\n", name, name
+@@ -330,7 +340,7 @@
+ printf "\t@echo linking libcurses.a to libncurses.a\n"
+ printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n"
+ }
+- if ( target == "vxworks" )
++ if ( host == "vxworks" )
+ {
+ printf "\t@echo uninstalling $(DESTDIR)$(libdir)/lib%s.o\n", name
+ printf "\t-@rm -f $(DESTDIR)$(libdir)/lib%s.o\n", name
+@@ -343,7 +353,7 @@
+ print "mostlyclean::"
+ printf "\t-rm -f $(%s_OBJS)\n", OBJS
+ if ( MODEL == "LIBTOOL" ) {
+- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
++ printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:.o=.lo)\n", OBJS
+ }
+ }
+ else if ( found == 2 )
+@@ -352,13 +362,13 @@
+ print "mostlyclean::"
+ printf "\t-rm -f $(%s_OBJS)\n", OBJS
+ if ( MODEL == "LIBTOOL" ) {
+- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
++ printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:.o=.lo)\n", OBJS
+ }
+ print ""
+ print "clean ::"
+ printf "\t-rm -f $(%s_OBJS)\n", OBJS
+ if ( MODEL == "LIBTOOL" ) {
+- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
++ printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:.o=.lo)\n", OBJS
+ }
+ }
+ }
+diff -urNd -urNd ncurses-5.3/mk-2nd.awk ncurses-5.3.20030906.orig/mk-2nd.awk
+--- ncurses-5.3/mk-2nd.awk Sat Oct 14 12:57:02 2000
++++ ncurses-5.3.20030906.orig/mk-2nd.awk Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: mk-2nd.awk,v 1.13 2000/10/14 17:57:02 Johnny.C.Lam Exp $
++# $Id: mk-2nd.awk,v 1.14 2003/08/30 20:59:40 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2000,2003 Free 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"), #
+@@ -100,9 +100,9 @@
+ dir = $3 "/"
+ sub("^\\$\\(srcdir\\)/","",dir);
+ sub("^\\./","",dir);
+- printf "\t%scd ../%s; $(LIBTOOL) $(%s) $(CFLAGS_%s) -c ../%s/%s%s%s", atsign, model, compile, MODEL, name, dir, $1, suffix
++ printf "\t%scd ../%s; $(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s) -c ../%s/%s%s%s", atsign, model, compile, MODEL, name, dir, $1, suffix
+ } else
+- printf "\t%scd ../%s; $(LIBTOOL) $(%s) $(CFLAGS_%s) -c %s/%s%s", atsign, model, compile, MODEL, $3, $1, suffix
++ printf "\t%scd ../%s; $(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s) -c %s/%s%s", atsign, model, compile, MODEL, $3, $1, suffix
+ } else {
+ printf "%s", $1
+ for (n = 2; n <= NF; n++) printf " %s", $n
+diff -urNd -urNd ncurses-5.3/ncurses/Makefile.in ncurses-5.3.20030906.orig/ncurses/Makefile.in
+--- ncurses-5.3/ncurses/Makefile.in Sat Jun 29 17:36:25 2002
++++ ncurses-5.3.20030906.orig/ncurses/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.84 2002/06/29 22:36:25 tom Exp $
++# $Id: Makefile.in,v 1.89 2003/08/23 23:25:48 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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 1996-2001
++# Author: Thomas E. Dickey 1996-2002
+ #
+ # Makefile for ncurses source code.
+ #
+@@ -65,6 +65,11 @@
+ datadir = @datadir@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
++LIBTOOL_INSTALL = @LIB_INSTALL@
++LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+
+ INSTALL = @INSTALL@
+ INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
+@@ -86,10 +91,10 @@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+-HOSTCC = @BUILD_CC@
+-HOSTCCFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @BUILD_CFLAGS@ @BUILD_CPPFLAGS@
+-HOSTLDFLAGS = @BUILD_LDFLAGS@
+-HOSTLIBS = @BUILD_LIBS@
++BUILD_CC = @BUILD_CC@
++BUILD_CCFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @BUILD_CPPFLAGS@ @BUILD_CFLAGS@
++BUILD_LDFLAGS = @BUILD_LDFLAGS@
++BUILD_LIBS = @BUILD_LIBS@
+
+ CFLAGS_LIBTOOL = $(CCFLAGS)
+ CFLAGS_NORMAL = $(CCFLAGS)
+@@ -113,7 +118,7 @@
+ REL_VERSION = @cf_cv_rel_version@
+ ABI_VERSION = @cf_cv_abi_version@
+
+-RANLIB = @RANLIB@
++RANLIB = @LIB_PREP@
+
+ IMPORT_LIB = @IMPORT_LIB@
+ SHARED_LIB = @SHARED_LIB@
+@@ -189,12 +194,12 @@
+ make_keys$x : \
+ $(tinfo)/make_keys.c \
+ names.c
+- $(HOSTCC) -o $@ $(HOSTCCFLAGS) $(tinfo)/make_keys.c $(HOSTLDFLAGS) $(HOSTLIBS)
++ $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
+
+ make_hash$x : \
+ $(tinfo)/comp_hash.c \
+ ../include/hashsize.h
+- $(HOSTCC) -o $@ $(HOSTCCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(HOSTLDFLAGS) $(HOSTLIBS)
++ $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
+
+ expanded.c : $(serial)/MKexpanded.sh
+ sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
+diff -urNd -urNd ncurses-5.3/ncurses/base/MKlib_gen.sh ncurses-5.3.20030906.orig/ncurses/base/MKlib_gen.sh
+--- ncurses-5.3/ncurses/base/MKlib_gen.sh Sat Sep 28 10:02:11 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/MKlib_gen.sh Tue May 13 20:08:22 2003
+@@ -2,10 +2,10 @@
+ #
+ # MKlib_gen.sh -- generate sources from curses.h macro definitions
+ #
+-# ($Id: MKlib_gen.sh,v 1.20 2002/09/28 15:02:11 tom Exp $)
++# ($Id: MKlib_gen.sh,v 1.22 2003/02/22 19:58:07 tom Exp $)
+ #
+ ##############################################################################
+-# Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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"), #
+@@ -82,19 +82,19 @@
+ cat >$ED1 <<EOF1
+ /^extern.*implemented/{
+ h
+- s/^.*implemented:\([^ *]*\).*/P_#if_USE_\1_SUPPORT/p
++ s/^.*implemented:\([^ *]*\).*/P_POUNDCif_USE_\1_SUPPORT/p
+ g
+ s/^extern \([^;]*\);.*/\1/p
+ g
+- s/^.*implemented:\([^ *]*\).*/P_#endif/p
++ s/^.*implemented:\([^ *]*\).*/P_POUNDCendif/p
+ }
+ /^extern.*generated/{
+ h
+- s/^.*generated:\([^ *]*\).*/P_#if_USE_\1_SUPPORT/p
++ s/^.*generated:\([^ *]*\).*/P_POUNDCif_USE_\1_SUPPORT/p
+ g
+ s/^extern \([^;]*\);.*/\1/p
+ g
+- s/^.*generated:\([^ *]*\).*/P_#endif/p
++ s/^.*generated:\([^ *]*\).*/P_POUNDCendif/p
+ }
+ EOF1
+ else
+@@ -102,11 +102,11 @@
+ cat >$ED1 <<EOF1
+ /^extern.*${ALL}/{
+ h
+- s/^.*${ALL}:\([^ *]*\).*/P_#if_USE_\1_SUPPORT/p
++ s/^.*${ALL}:\([^ *]*\).*/P_POUNDCif_USE_\1_SUPPORT/p
+ g
+ s/^extern \([^;]*\);.*/\1/p
+ g
+- s/^.*${ALL}:\([^ *]*\).*/P_#endif/p
++ s/^.*${ALL}:\([^ *]*\).*/P_POUNDCendif/p
+ }
+ EOF1
+ fi
+@@ -134,13 +134,14 @@
+ s/)/ z)/
+ s/\.\.\. z)/...)/
+ :nc
+- /(/s// ( /
++ s/(/ ( /
+ s/)/ )/
+ EOF2
+
+ cat >$ED3 <<EOF3
+ /^P_/{
+- s/^P_#if_/#if /
++ s/^P_POUNDCif_/#if /
++ s/^P_POUNDCendif/#endif/
+ s/^P_//
+ b done
+ }
+@@ -151,7 +152,7 @@
+ s/ )/)/g
+ s/ gen_/ /
+ s/^M_/#undef /
+- /^%%/s// /
++ /^%%/s/%%/ /
+ :done
+ EOF3
+
+@@ -175,12 +176,12 @@
+ BEGIN {
+ skip=0;
+ }
+-/^P_#if/ {
++/^P_POUNDCif/ {
+ print "\n"
+ print $0
+ skip=0;
+ }
+-/^P_#endif/ {
++/^P_POUNDCendif/ {
+ print $0
+ skip=1;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/define_key.c ncurses-5.3.20030906.orig/ncurses/base/define_key.c
+--- ncurses-5.3/ncurses/base/define_key.c Sat Dec 9 20:43:26 2000
++++ ncurses-5.3.20030906.orig/ncurses/base/define_key.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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,11 +32,10 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: define_key.c,v 1.6 2000/12/10 02:43:26 tom Exp $")
++MODULE_ID("$Id: define_key.c,v 1.8 2003/05/17 23:28:05 tom Exp $")
+
+ NCURSES_EXPORT(int)
+-define_key
+-(char *str, int keycode)
++define_key(const char *str, int keycode)
+ {
+ int code = ERR;
+
+@@ -49,8 +48,12 @@
+ code = OK;
+ }
+ if (str != 0) {
+- (void) _nc_add_to_try(&(SP->_keytry), str, keycode);
+- code = OK;
++ if (key_defined(str) == 0) {
++ (void) _nc_add_to_try(&(SP->_keytry), str, keycode);
++ code = OK;
++ } else {
++ code = ERR;
++ }
+ }
+ } else {
+ while (_nc_remove_string(&(SP->_keytry), str))
+diff -urNd -urNd ncurses-5.3/ncurses/base/key_defined.c ncurses-5.3.20030906.orig/ncurses/base/key_defined.c
+--- ncurses-5.3/ncurses/base/key_defined.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/ncurses/base/key_defined.c Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,76 @@
++/****************************************************************************
++ * Copyright (c) 2003 Free 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, 2003 *
++ ****************************************************************************/
++
++#include <curses.priv.h>
++
++MODULE_ID("$Id: key_defined.c,v 1.3 2003/05/17 23:12:27 tom Exp $")
++
++static int
++find_definition(struct tries *tree, const char *str)
++{
++ struct tries *ptr;
++ int result = 0;
++
++ if (str != 0 && *str != '\0') {
++ for (ptr = tree; ptr != 0; ptr = ptr->sibling) {
++ if (UChar(*str) == UChar(ptr->ch)) {
++ if (str[1] == '\0' && ptr->child != 0) {
++ result = -1;
++ } else if ((result = find_definition(ptr->child, str + 1)) == 0) {
++ result = ptr->value;
++ } else if (str[1] == '\0') {
++ result = -1;
++ }
++ }
++ if (result != 0)
++ break;
++ }
++ }
++ return (result);
++}
++
++/*
++ * Returns the keycode associated with the given string. If none is found,
++ * return 0. If the string is only a prefix to other strings, return -1.
++ */
++NCURSES_EXPORT(int)
++key_defined(const char *str)
++{
++ int code = ERR;
++
++ T((T_CALLED("key_defined(%s)"), _nc_visbuf(str)));
++ if (SP != 0 && str != 0) {
++ code = find_definition(SP->_keytry, str);
++ }
++
++ returnCode(code);
++}
+diff -urNd -urNd ncurses-5.3/ncurses/base/keybound.c ncurses-5.3.20030906.orig/ncurses/base/keybound.c
+--- ncurses-5.3/ncurses/base/keybound.c Sat Dec 9 20:43:26 2000
++++ ncurses-5.3.20030906.orig/ncurses/base/keybound.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2000,2003 Free 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: keybound.c,v 1.3 2000/12/10 02:43:26 tom Exp $")
++MODULE_ID("$Id: keybound.c,v 1.4 2003/03/08 19:39:31 tom Exp $")
+
+ /*
+ * Returns the count'th string definition which is associated with the
+@@ -42,5 +42,6 @@
+ NCURSES_EXPORT(char *)
+ keybound(int code, int count)
+ {
+- return _nc_expand_try(SP->_key_ok, code, &count, 0);
++ T((T_CALLED("keybound(%d,%d)"), code, count));
++ returnPtr(_nc_expand_try(SP->_keytry, code, &count, 0));
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_addch.c ncurses-5.3.20030906.orig/ncurses/base/lib_addch.c
+--- ncurses-5.3/ncurses/base/lib_addch.c Sat Sep 28 12:48:13 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_addch.c Fri Sep 12 16:42:10 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.68 2002/09/28 17:48:13 tom Exp $")
++MODULE_ID("$Id: lib_addch.c,v 1.77 2003/08/17 00:09:05 tom Exp $")
+
+ /*
+ * Ugly microtweaking alert. Everything from here to end of module is
+@@ -68,7 +68,7 @@
+ AddAttr(ch, (a & COLOR_MASK(AttrOf(ch))));
+ }
+
+- TR(TRACE_VIRTPUT, ("bkg = %s, attrs = %s -> ch = %s",
++ TR(TRACE_VIRTPUT, ("render_char bkg %s, attrs %s -> ch %s",
+ _tracech_t2(1, CHREF(win->_nc_bkgd)),
+ _traceattr(win->_attrs),
+ _tracech_t2(3, CHREF(ch))));
+@@ -99,15 +99,21 @@
+ #define CHECK_POSITION(win, x, y) /* nothing */
+ #endif
+
+-static inline int
++static
++#if !USE_WIDEC_SUPPORT /* cannot be inline if it is recursive */
++ inline
++#endif
++int
+ waddch_literal(WINDOW *win, NCURSES_CH_T ch)
+ {
+ int x;
++ int y;
+ struct ldat *line;
+
+ x = win->_curx;
++ y = win->_cury;
+
+- CHECK_POSITION(win, x, win->_cury);
++ CHECK_POSITION(win, x, y);
+
+ /*
+ * If we're trying to add a character at the lower-right corner more
+@@ -122,20 +128,65 @@
+ #endif
+
+ ch = render_char(win, ch);
+- TR(TRACE_VIRTPUT, ("win attr = %s", _traceattr(win->_attrs)));
+
+- line = win->_line + win->_cury;
++ line = win->_line + y;
+
+ CHANGED_CELL(line, x);
+
+ /*
++ * Build up multibyte characters until we have a wide-character.
++ */
++ if_WIDEC({
++ if (WINDOW_EXT(win, addch_used) == 0 && Charable(ch)) {
++ WINDOW_EXT(win, addch_used) = 0;
++ } else {
++ char *buffer = WINDOW_EXT(win, addch_work);
++ int len;
++ mbstate_t state;
++ wchar_t result;
++
++ if ((WINDOW_EXT(win, addch_used) != 0) &&
++ (WINDOW_EXT(win, addch_x) != x ||
++ WINDOW_EXT(win, addch_y) != y)) {
++ /* discard the incomplete multibyte character */
++ WINDOW_EXT(win, addch_used) = 0;
++ }
++ WINDOW_EXT(win, addch_x) = x;
++ WINDOW_EXT(win, addch_y) = y;
++
++ memset(&state, 0, sizeof(state));
++ buffer[WINDOW_EXT(win, addch_used)] = CharOf(ch);
++ WINDOW_EXT(win, addch_used) += 1;
++ buffer[WINDOW_EXT(win, addch_used)] = '\0';
++ if ((len = mbrtowc(&result,
++ buffer,
++ WINDOW_EXT(win, addch_used), &state)) > 0) {
++ attr_t attrs = AttrOf(ch);
++ SetChar(ch, result, attrs);
++ WINDOW_EXT(win, addch_used) = 0;
++ } else {
++ if (len == -1) {
++ /*
++ * An error occurred. We could either discard everything,
++ * or assume that the error was in the previous input.
++ * Try the latter.
++ */
++ TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
++ buffer[0] = CharOf(ch);
++ WINDOW_EXT(win, addch_used) = 1;
++ }
++ return OK;
++ }
++ }
++ });
++
++ /*
+ * Handle non-spacing characters
+ */
+ if_WIDEC({
+ if (wcwidth(CharOf(ch)) == 0) {
+ int i;
+- int y;
+- if ((x > 0 && ((y = win->_cury) >= 0))
++ if ((x > 0 && y >= 0)
+ || ((y = win->_cury - 1) >= 0 &&
+ (x = win->_maxx) > 0)) {
+ wchar_t *chars = (win->_line[y].text[x - 1].chars);
+@@ -154,8 +205,18 @@
+ * Provide for multi-column characters
+ */
+ if_WIDEC({
+- if (wcwidth(CharOf(ch)) > 1)
++ int len = wcwidth(CharOf(ch));
++ while (len-- > 1) {
++ if (x + (len - 1) > win->_maxx) {
++ NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
++ AddAttr(blank, AttrOf(ch));
++ if (waddch_literal(win, blank) != ERR)
++ return waddch_literal(win, ch);
++ return ERR;
++ }
+ AddAttr(line->text[x++], WA_NAC);
++ TR(TRACE_VIRTPUT, ("added NAC %d", x - 1));
++ }
+ }
+ testwrapping:
+ );
+@@ -330,14 +391,30 @@
+ NCURSES_EXPORT(int)
+ wadd_wch(WINDOW *win, const cchar_t * wch)
+ {
++ PUTC_DATA;
++ int n;
+ int code = ERR;
+
+ TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wadd_wch(%p, %s)"), win,
+ _tracech_t(wch)));
+
+- if (win && (waddch_nosync(win, *wch) != ERR)) {
+- _nc_synchook(win);
+- code = OK;
++ if (win != 0) {
++ PUTC_INIT;
++ while (PUTC_i < CCHARW_MAX) {
++ if ((PUTC_ch = wch->chars[PUTC_i++]) == L'\0')
++ break;
++ if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
++ code = ERR;
++ break;
++ }
++ for (n = 0; n < PUTC_n; n++) {
++ if ((code = waddch(win, UChar(PUTC_buf[n]))) == ERR) {
++ break;
++ }
++ }
++ if (code == ERR)
++ break;
++ }
+ }
+
+ TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
+@@ -347,18 +424,32 @@
+ NCURSES_EXPORT(int)
+ wecho_wchar(WINDOW *win, const cchar_t * wch)
+ {
++ PUTC_DATA;
++ int n;
+ int code = ERR;
+
+ TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wecho_wchar(%p, %s)"), win,
+ _tracech_t(wch)));
+
+- if (win && (waddch_nosync(win, *wch) != ERR)) {
+- bool save_immed = win->_immed;
+- win->_immed = TRUE;
+- _nc_synchook(win);
+- win->_immed = save_immed;
+- code = OK;
++ if (win != 0) {
++ PUTC_INIT;
++ while (PUTC_i < CCHARW_MAX) {
++ if ((PUTC_ch = wch->chars[PUTC_i++]) == L'\0')
++ break;
++ if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
++ code = ERR;
++ break;
++ }
++ for (n = 0; n < PUTC_n; n++) {
++ if ((code = wechochar(win, UChar(PUTC_buf[n]))) == ERR) {
++ break;
++ }
++ }
++ if (code == ERR)
++ break;
++ }
+ }
++
+ TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
+ return (code);
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_addstr.c ncurses-5.3.20030906.orig/ncurses/base/lib_addstr.c
+--- ncurses-5.3/ncurses/base/lib_addstr.c Sat Oct 5 19:25:25 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_addstr.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,6 +29,10 @@
+ /****************************************************************************
+ * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
++ * *
++ * Rewritten 2001-2002 to support wide-characters by *
++ * Sven Verdoolaege *
++ * Thomas Dickey *
+ ****************************************************************************/
+
+ /*
+@@ -40,53 +44,13 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_addstr.c,v 1.34 2002/10/06 00:25:25 tom Exp $")
+-
+-#if USE_WIDEC_SUPPORT
+-#define CONV_DATA mbstate_t state; wchar_t cached; int clen = 0
+-#define CONV_INIT memset (&state, '\0', sizeof (state)); cached = (wchar_t)WEOF
+-#define NEXT_CHAR(s,ch, n) \
+- { \
+- int len, i = 0; \
+- memset(&ch, 0, sizeof(cchar_t)); \
+- if (cached != (wchar_t) WEOF) { \
+- ch.chars[i++] = cached; \
+- cached = (wchar_t) WEOF; \
+- n -= clen; \
+- s += clen; \
+- } \
+- for (; i < CCHARW_MAX && n > 0; ++i) { \
+- if ((len = mbrtowc(&ch.chars[i], s, n, &state)) < 0) { \
+- code = ERR; \
+- break; \
+- } \
+- if (i == 0 || wcwidth(ch.chars[i]) == 0) { \
+- n -= len; \
+- s += len; \
+- } else { \
+- cached = ch.chars[i]; \
+- clen = len; \
+- ch.chars[i] = L'\0'; \
+- break; \
+- } \
+- } \
+- if (code == ERR) \
+- break; \
+- }
+-#else
+-#define CONV_DATA
+-#define CONV_INIT
+-#define NEXT_CHAR(s,ch, n) \
+- ch = *s++; \
+- --n
+-#endif
++MODULE_ID("$Id: lib_addstr.c,v 1.38 2003/07/05 19:45:21 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ waddnstr(WINDOW *win, const char *astr, int n)
+ {
+- unsigned const char *str = (unsigned const char *) astr;
++ const char *str = astr;
+ int code = ERR;
+- CONV_DATA;
+
+ T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbufn(astr, n), n));
+
+@@ -97,11 +61,10 @@
+ n = (int) strlen(astr);
+
+ TR(TRACE_VIRTPUT, ("str is not null, length = %d", n));
+- CONV_INIT;
+- while ((n > 0) && (*str != '\0')) {
++ while ((n-- > 0) && (*str != '\0')) {
+ NCURSES_CH_T ch;
+- TR(TRACE_VIRTPUT, ("*str = %#x", *str));
+- NEXT_CHAR(str, ch, n);
++ TR(TRACE_VIRTPUT, ("*str = %#o", UChar(*str)));
++ SetChar(ch, UChar(*str++), A_NORMAL);
+ if (_nc_waddch_nosync(win, ch) == ERR) {
+ code = ERR;
+ break;
+@@ -114,7 +77,7 @@
+ }
+
+ NCURSES_EXPORT(int)
+-waddchnstr(WINDOW *win, const chtype * astr, int n)
++waddchnstr(WINDOW *win, const chtype *astr, int n)
+ {
+ NCURSES_SIZE_T y = win->_cury;
+ NCURSES_SIZE_T x = win->_curx;
+@@ -155,7 +118,7 @@
+
+ #if USE_WIDEC_SUPPORT
+
+-int
++NCURSES_EXPORT(int)
+ _nc_wchstrlen(const cchar_t * s)
+ {
+ int result = 0;
+@@ -217,9 +180,8 @@
+ waddnwstr(WINDOW *win, const wchar_t * str, int n)
+ {
+ int code = ERR;
+- int i;
+
+- T((T_CALLED("waddnwstr(%p,%s,%d)"), win, _nc_viswbufn(str,n), n));
++ T((T_CALLED("waddnwstr(%p,%s,%d)"), win, _nc_viswbufn(str, n), n));
+
+ if (win && (str != 0)) {
+ TR(TRACE_VIRTPUT | TRACE_ATTRS, ("... current %s", _traceattr(win->_attrs)));
+@@ -230,16 +192,9 @@
+ TR(TRACE_VIRTPUT, ("str is not null, length = %d", n));
+ while ((n-- > 0) && (*str != L('\0'))) {
+ NCURSES_CH_T ch;
+- TR(TRACE_VIRTPUT, ("*str[0] = %#lx", *str));
++ TR(TRACE_VIRTPUT, ("*str[0] = %#lx", (unsigned long) *str));
+ SetChar(ch, *str++, A_NORMAL);
+- i = 1;
+- while (i < CCHARW_MAX && n > 0 && (*str != L('\0'))
+- && wcwidth(*str) == 0) {
+- TR(TRACE_VIRTPUT, ("*str[%d] = %#lx", i, *str));
+- ch.chars[i++] = *str++;
+- --n;
+- }
+- if (_nc_waddch_nosync(win, ch) == ERR) {
++ if (wadd_wch(win, &ch) == ERR) {
+ code = ERR;
+ break;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_bkgd.c ncurses-5.3.20030906.orig/ncurses/base/lib_bkgd.c
+--- ncurses-5.3/ncurses/base/lib_bkgd.c Sun Sep 22 15:30:32 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_bkgd.c Sun Jul 20 14:02:09 2003
+@@ -33,7 +33,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_bkgd.c,v 1.29 2002/09/22 20:30:32 tom Exp $")
++MODULE_ID("$Id: lib_bkgd.c,v 1.30 2003/07/05 16:46:49 tom Exp $")
+
+ /*
+ * Set the window's background information.
+@@ -70,7 +70,7 @@
+ int tmp;
+
+ wgetbkgrnd(win, &wch);
+- tmp = wctob(CharOf(wch));
++ tmp = _nc_to_char(CharOf(wch));
+
+ win->_bkgd = ((tmp == EOF) ? ' ' : (chtype) tmp) | AttrOf(wch);
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_freeall.c ncurses-5.3.20030906.orig/ncurses/base/lib_freeall.c
+--- ncurses-5.3/ncurses/base/lib_freeall.c Sat Jul 27 19:35:25 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_freeall.c Fri Sep 12 16:41:56 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.20 2002/07/28 00:35:25 tom Exp $")
++MODULE_ID("$Id: lib_freeall.c,v 1.25 2003/08/09 21:32:53 tom Exp $")
+
+ /*
+ * Free all ncurses data. This is used for testing only (there's no practical
+@@ -51,8 +51,10 @@
+ WINDOWLIST *p, *q;
+ char *s;
+
++ T((T_CALLED("_nc_freeall()")));
+ #if NO_LEAKS
+ _nc_free_tparm();
++ FreeAndNull(_nc_oldnums);
+ #endif
+ if (SP != 0) {
+ while (_nc_windows != 0) {
+@@ -82,24 +84,37 @@
+ _nc_free_termtype(&(cur_term->type));
+ free(cur_term);
+ }
++ _nc_free_entries(_nc_head);
+
+ if ((s = _nc_home_terminfo()) != 0)
+ free(s);
++
++ (void) _nc_printf_string(0, 0);
+ #ifdef TRACE
+ (void) _nc_trace_buf(-1, 0);
+ #endif
++
+ #if HAVE_LIBDBMALLOC
+ malloc_dump(malloc_errfd);
+ #elif HAVE_LIBDMALLOC
+ #elif HAVE_PURIFY
+ purify_all_inuse();
+ #endif
++ returnVoid;
+ }
+
+ NCURSES_EXPORT(void)
+ _nc_free_and_exit(int code)
+ {
++ char *last_setbuf = (SP != 0) ? SP->_setbuf : 0;
++
+ _nc_freeall();
++#ifdef TRACE
++ trace(0); /* close trace file, freeing its setbuf */
++ free(_nc_varargs("?", 0));
++#endif
++ fclose(stdout);
++ FreeIfNeeded(last_setbuf);
+ exit(code);
+ }
+
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_getch.c ncurses-5.3.20030906.orig/ncurses/base/lib_getch.c
+--- ncurses-5.3/ncurses/base/lib_getch.c Sat Sep 7 12:17:59 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_getch.c Sun Jul 20 14:02:08 2003
+@@ -40,7 +40,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_getch.c,v 1.67 2002/09/07 17:17:59 tom Exp $")
++MODULE_ID("$Id: lib_getch.c,v 1.71 2003/05/17 23:49:28 tom Exp $")
+
+ #include <fifo_defs.h>
+
+@@ -53,6 +53,32 @@
+ #define TWAIT_MASK 3
+ #endif
+
++/*
++ * Check for mouse activity, returning nonzero if we find any.
++ */
++static int
++check_mouse_activity(int delay EVENTLIST_2nd(_nc_eventlist * evl))
++{
++ int rc;
++
++#if USE_SYSMOUSE
++ if ((SP->_mouse_type == M_SYSMOUSE)
++ && (SP->_sysmouse_head < SP->_sysmouse_tail)) {
++ return 2;
++ }
++#endif
++ rc = _nc_timed_wait(TWAIT_MASK, delay, (int *) 0 EVENTLIST_2nd(evl));
++#if USE_SYSMOUSE
++ if ((SP->_mouse_type == M_SYSMOUSE)
++ && (SP->_sysmouse_head < SP->_sysmouse_tail)
++ && (rc == 0)
++ && (errno == EINTR)) {
++ rc |= 2;
++ }
++#endif
++ return rc;
++}
++
+ static inline int
+ fifo_peek(void)
+ {
+@@ -88,7 +114,7 @@
+ {
+ int n;
+ int ch = 0;
+- int mask;
++ int mask = 0;
+
+ (void) mask;
+ if (tail == -1)
+@@ -101,11 +127,11 @@
+
+ #ifdef NCURSES_WGETCH_EVENTS
+ if (evl
+-#if USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
++#if USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
+ || (SP->_mouse_fd >= 0)
+ #endif
+ ) {
+- mask = _nc_timed_wait(TWAIT_MASK, -1, (int *) 0, evl);
++ mask = check_mouse_activity(-1 EVENTLIST_2nd(evl));
+ } else
+ mask = 0;
+
+@@ -114,18 +140,32 @@
+ ungetch(KEY_EVENT);
+ return KEY_EVENT;
+ }
+-#elif USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
+- if (SP->_mouse_fd >= 0)
+- mask = _nc_timed_wait(TWAIT_MASK, -1, (int *) 0 EVENTLIST_2nd(evl));
++#elif USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
++ if (SP->_mouse_fd >= 0) {
++ mask = check_mouse_activity(-1 EVENTLIST_2nd(evl));
++ }
+ #endif
+
+-#if USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
++#if USE_GPM_SUPPORT || USE_EMX_MOUSE
+ if ((SP->_mouse_fd >= 0) && (mask & 2)) {
+ SP->_mouse_event(SP);
+ ch = KEY_MOUSE;
+ n = 1;
+ } else
+ #endif
++#if USE_SYSMOUSE
++ if ((SP->_mouse_type == M_SYSMOUSE)
++ && (SP->_sysmouse_head < SP->_sysmouse_tail)) {
++ SP->_mouse_event(SP);
++ ch = KEY_MOUSE;
++ n = 1;
++ } else if ((SP->_mouse_type == M_SYSMOUSE)
++ && (mask <= 0) && errno == EINTR) {
++ SP->_mouse_event(SP);
++ ch = KEY_MOUSE;
++ n = 1;
++ } else
++#endif
+ { /* Can block... */
+ unsigned char c2 = 0;
+ n = read(SP->_ifd, &c2, 1);
+@@ -214,13 +254,19 @@
+ * stuff its contents in the FIFO queue, and pop off
+ * the first character to return it.
+ */
+- if (head == -1 && !SP->_raw && !SP->_cbreak) {
++ if (head == -1 &&
++ !SP->_notty &&
++ !SP->_raw &&
++ !SP->_cbreak &&
++ !SP->_called_wgetch) {
+ char buf[MAXCOLUMNS], *sp;
+ int rc;
+
+ TR(TRACE_IEVENT, ("filling queue in cooked mode"));
+
++ SP->_called_wgetch = TRUE;
+ rc = wgetnstr(win, buf, MAXCOLUMNS);
++ SP->_called_wgetch = FALSE;
+
+ /* ungetch in reverse order */
+ #ifdef NCURSES_WGETCH_EVENTS
+@@ -265,10 +311,7 @@
+ TR(TRACE_IEVENT, ("delay is %d milliseconds", delay));
+
+ if (head == -1) { /* fifo is empty */
+- int rc = _nc_timed_wait(TWAIT_MASK,
+- delay,
+- (int *) 0
+- EVENTLIST_2nd(evl));
++ int rc = check_mouse_activity(delay EVENTLIST_2nd(evl));
+
+ #ifdef NCURSES_WGETCH_EVENTS
+ if (rc & 4) {
+@@ -308,10 +351,8 @@
+ break;
+ } while
+ (ch == KEY_MOUSE
+- && (((rc = _nc_timed_wait(TWAIT_MASK,
+- SP->_maxclick,
+- (int *) 0
+- EVENTLIST_2nd(evl))) != 0
++ && (((rc = check_mouse_activity(SP->_maxclick
++ EVENTLIST_2nd(evl))) != 0
+ && !(rc & 4))
+ || !SP->_mouse_parse(runcount)));
+ #ifdef NCURSES_WGETCH_EVENTS
+@@ -513,14 +554,11 @@
+ int rc;
+
+ TR(TRACE_IEVENT, ("waiting for rest of sequence"));
+- rc = _nc_timed_wait(TWAIT_MASK,
+- timeleft,
+- &timeleft
+- EVENTLIST_2nd(evl));
++ rc = check_mouse_activity(timeleft EVENTLIST_2nd(evl));
+ #ifdef NCURSES_WGETCH_EVENTS
+ if (rc & 4) {
+ TR(TRACE_IEVENT, ("interrupted by a user event"));
+- /* FIXME Should have preserved timeleft for reusal... */
++ /* FIXME Should have preserved remainder timeleft for reusal... */
+ peek = head; /* Restart interpreting later */
+ return KEY_EVENT;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_insch.c ncurses-5.3.20030906.orig/ncurses/base/lib_insch.c
+--- ncurses-5.3/ncurses/base/lib_insch.c Sat Jun 9 18:47:38 2001
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_insch.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,6 +29,8 @@
+ /****************************************************************************
+ * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
++ * and: Sven Verdoolaege *
++ * and: Thomas E. Dickey *
+ ****************************************************************************/
+
+ /*
+@@ -39,29 +41,98 @@
+ */
+
+ #include <curses.priv.h>
++#include <ctype.h>
+
+-MODULE_ID("$Id: lib_insch.c,v 1.15 2001/06/09 23:47:38 skimo Exp $")
++MODULE_ID("$Id: lib_insch.c,v 1.18 2002/11/23 21:41:05 tom Exp $")
++
++/*
++ * Insert the given character, updating the current location to simplify
++ * inserting a string.
++ */
++void
++_nc_insert_ch(WINDOW *win, chtype ch)
++{
++ NCURSES_CH_T wch;
++ int count;
++
++ switch (ch) {
++ case '\t':
++ for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--)
++ _nc_insert_ch(win, ' ');
++ break;
++ case '\n':
++ case '\r':
++ case '\b':
++ SetChar2(wch, ch);
++ _nc_waddch_nosync(win, wch);
++ break;
++ default:
++ if (is7bits(ch) && iscntrl(ch)) {
++ _nc_insert_ch(win, '^');
++ _nc_insert_ch(win, '@' + (ch));
++ } else if (win->_curx <= win->_maxx) {
++ struct ldat *line = &(win->_line[win->_cury]);
++ NCURSES_CH_T *end = &(line->text[win->_curx]);
++ NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
++ NCURSES_CH_T *temp2 = temp1 - 1;
++
++ SetChar2(wch, ch);
++
++ CHANGED_TO_EOL(line, win->_curx, win->_maxx);
++ while (temp1 > end)
++ *temp1-- = *temp2--;
++
++ *temp1 = _nc_render(win, wch);
++
++ win->_curx++;
++ }
++ break;
++ }
++}
+
+ NCURSES_EXPORT(int)
+ winsch(WINDOW *win, chtype c)
+ {
++ NCURSES_SIZE_T oy;
++ NCURSES_SIZE_T ox;
+ int code = ERR;
+
+ T((T_CALLED("winsch(%p, %s)"), win, _tracechtype(c)));
+
+- if (win) {
+- struct ldat *line = &(win->_line[win->_cury]);
+- NCURSES_CH_T *end = &(line->text[win->_curx]);
+- NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
+- NCURSES_CH_T *temp2 = temp1 - 1;
+- NCURSES_CH_T wch;
+- SetChar2(wch, c);
++ if (win != 0) {
++ oy = win->_cury;
++ ox = win->_curx;
+
+- CHANGED_TO_EOL(line, win->_curx, win->_maxx);
+- while (temp1 > end)
+- *temp1-- = *temp2--;
++ _nc_insert_ch(win, c);
+
+- *temp1 = _nc_render(win, wch);
++ win->_curx = ox;
++ win->_cury = oy;
++ _nc_synchook(win);
++ code = OK;
++ }
++ returnCode(code);
++}
++
++NCURSES_EXPORT(int)
++winsnstr(WINDOW *win, const char *s, int n)
++{
++ int code = ERR;
++ NCURSES_SIZE_T oy;
++ NCURSES_SIZE_T ox;
++ const unsigned char *str = (const unsigned char *) s;
++ const unsigned char *cp;
++
++ T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n));
++
++ if (win != 0 && str != 0) {
++ oy = win->_cury;
++ ox = win->_curx;
++ for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
++ _nc_insert_ch(win, (chtype) UChar(*cp));
++ }
++ win->_curx = ox;
++ win->_cury = oy;
++ _nc_synchook(win);
+ code = OK;
+ }
+ returnCode(code);
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_insdel.c ncurses-5.3.20030906.orig/ncurses/base/lib_insdel.c
+--- ncurses-5.3/ncurses/base/lib_insdel.c Tue Dec 18 19:10:49 2001
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_insdel.c Fri Sep 12 16:41:24 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2003 Free 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,14 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_insdel.c,v 1.11 2001/12/19 01:10:49 tom Exp $")
++MODULE_ID("$Id: lib_insdel.c,v 1.12 2003/07/26 22:40:06 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ winsdelln(WINDOW *win, int n)
+ {
+ int code = ERR;
+
+- T((T_CALLED("winsdel(%p,%d)"), win, n));
++ T((T_CALLED("winsdelln(%p,%d)"), win, n));
+
+ if (win) {
+ if (n != 0) {
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_mouse.c ncurses-5.3.20030906.orig/ncurses/base/lib_mouse.c
+--- ncurses-5.3/ncurses/base/lib_mouse.c Sat Sep 28 11:08:58 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_mouse.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,6 +29,7 @@
+ /****************************************************************************
+ * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
++ * and: Thomas E. Dickey 1996-2003 *
+ ****************************************************************************/
+
+ /*
+@@ -74,7 +75,11 @@
+ #endif
+
+ #include <curses.priv.h>
++
++MODULE_ID("$Id: lib_mouse.c,v 1.67 2003/05/31 22:18:18 tom Exp $")
++
+ #include <term.h>
++#include <tic.h>
+
+ #if USE_GPM_SUPPORT
+ #ifndef LINT /* don't need this for llib-lncurses */
+@@ -84,18 +89,33 @@
+ #endif
+ #endif
+
+-MODULE_ID("$Id: lib_mouse.c,v 1.61 2002/09/28 16:08:58 tom Exp $")
++#if USE_SYSMOUSE
++#undef buttons /* symbol conflict in consio.h */
++#undef mouse_info /* symbol conflict in consio.h */
++#include <osreldate.h>
++#if (__FreeBSD_version >= 400017)
++#include <sys/consio.h>
++#include <sys/fbio.h>
++#else
++#include <machine/console.h>
++#endif
++#endif /* use_SYSMOUSE */
+
+ #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
+
+-#define INVALID_EVENT -1
++#define MASK_RELEASE(x) ((001 << (6 * ((x) - 1))))
++#define MASK_PRESS(x) ((002 << (6 * ((x) - 1))))
++#define MASK_CLICK(x) ((004 << (6 * ((x) - 1))))
++#define MASK_DOUBLE_CLICK(x) ((010 << (6 * ((x) - 1))))
++#define MASK_TRIPLE_CLICK(x) ((020 << (6 * ((x) - 1))))
++#define MASK_RESERVED_EVENT(x) ((040 << (6 * ((x) - 1))))
+
+-static int mousetype;
+-#define M_XTERM -1 /* use xterm's mouse tracking? */
+-#define M_NONE 0 /* no mouse device */
+-#define M_GPM 1 /* use GPM */
+-#define M_QNX 2 /* QNX mouse on console */
+-#define M_QNX_TERM 3 /* QNX mouse on pterm/xterm (using qansi-m) */
++#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED)
++#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED)
++#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED)
++
++#define INVALID_EVENT -1
++#define NORMAL_EVENT 0
+
+ #if USE_GPM_SUPPORT
+ #ifndef LINT
+@@ -117,7 +137,11 @@
+ */
+ static MEVENT events[EV_MAX]; /* hold the last mouse event seen */
+ static MEVENT *eventp = events; /* next free slot in event queue */
++
++#undef NEXT
+ #define NEXT(ep) ((ep == events + EV_MAX - 1) ? events : ep + 1)
++
++#undef PREV
+ #define PREV(ep) ((ep == events) ? events + EV_MAX - 1 : ep - 1)
+
+ #ifdef TRACE
+@@ -135,7 +159,7 @@
+ }
+ #endif
+
+-#ifdef USE_EMX_MOUSE
++#if USE_EMX_MOUSE
+
+ # define TOP_ROW 0
+ # define LEFT_COL 0
+@@ -229,31 +253,110 @@
+ mouse_activated = state;
+ }
+
++#endif /* USE_EMX_MOUSE */
++
++#if USE_SYSMOUSE
++static void
++handle_sysmouse(int sig GCC_UNUSED)
++{
++ struct mouse_info the_mouse;
++ MEVENT *work;
++
++ the_mouse.operation = MOUSE_GETINFO;
++ if (SP != 0
++ && SP->_mouse_fd >= 0
++ && SP->_sysmouse_tail < FIFO_SIZE
++ && ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
++
++ if (SP->_sysmouse_head > SP->_sysmouse_tail) {
++ SP->_sysmouse_tail = 0;
++ SP->_sysmouse_head = 0;
++ }
++ work = &(SP->_sysmouse_fifo[SP->_sysmouse_tail]);
++ memset(work, 0, sizeof(*work));
++ work->id = NORMAL_EVENT; /* there's only one mouse... */
++
++ SP->_sysmouse_old_buttons = SP->_sysmouse_new_buttons;
++ SP->_sysmouse_new_buttons = the_mouse.u.data.buttons & 0x7;
++
++ if (SP->_sysmouse_new_buttons) {
++ if (SP->_sysmouse_new_buttons & 1)
++ work->bstate |= BUTTON1_PRESSED;
++ if (SP->_sysmouse_new_buttons & 2)
++ work->bstate |= BUTTON2_PRESSED;
++ if (SP->_sysmouse_new_buttons & 4)
++ work->bstate |= BUTTON3_PRESSED;
++ } else {
++ if (SP->_sysmouse_old_buttons & 1)
++ work->bstate |= BUTTON1_RELEASED;
++ if (SP->_sysmouse_old_buttons & 2)
++ work->bstate |= BUTTON2_RELEASED;
++ if (SP->_sysmouse_old_buttons & 4)
++ work->bstate |= BUTTON3_RELEASED;
++ }
++
++ /* for cosmetic bug in syscons.c on FreeBSD 3.[34] */
++ the_mouse.operation = MOUSE_HIDE;
++ ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
++ the_mouse.operation = MOUSE_SHOW;
++ ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
++
++ /*
++ * We're only interested if the button is pressed or released.
++ * FIXME: implement continuous event-tracking.
++ */
++ if (SP->_sysmouse_new_buttons != SP->_sysmouse_old_buttons) {
++ SP->_sysmouse_tail += 1;
++ }
++ work->x = the_mouse.u.data.x / SP->_sysmouse_char_width;
++ work->y = the_mouse.u.data.y / SP->_sysmouse_char_height;
++ }
++}
+ #endif
+
+ static int initialized;
+
+ static void
++init_xterm_mouse(void)
++{
++ SP->_mouse_type = M_XTERM;
++ SP->_mouse_xtermcap = tigetstr("XM");
++ if (!VALID_STRING(SP->_mouse_xtermcap))
++ SP->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
++}
++
++#if !USE_EMX_MOUSE
++static void
++enable_xterm_mouse(int enable)
++{
++ putp(tparm(SP->_mouse_xtermcap, enable));
++}
++#endif /* !USE_EMX_MOUSE */
++
++static void
+ initialize_mousetype(void)
+ {
+ static const char *xterm_kmous = "\033[M";
+
+ /* Try gpm first, because gpm may be configured to run in xterm */
+ #if USE_GPM_SUPPORT
+- /* GPM: initialize connection to gpm server */
+- gpm_connect.eventMask = GPM_DOWN | GPM_UP;
+- gpm_connect.defaultMask = ~(gpm_connect.eventMask | GPM_HARD);
+- gpm_connect.minMod = 0;
+- gpm_connect.maxMod = ~((1 << KG_SHIFT) | (1 << KG_SHIFTL) | (1 << KG_SHIFTR));
+- if (Gpm_Open(&gpm_connect, 0) >= 0) { /* returns the file-descriptor */
+- mousetype = M_GPM;
+- SP->_mouse_fd = gpm_fd;
+- return;
++ /* GPM does printf's without checking if stdout is a terminal */
++ if (isatty(fileno(stdout))) {
++ /* GPM: initialize connection to gpm server */
++ gpm_connect.eventMask = GPM_DOWN | GPM_UP;
++ gpm_connect.defaultMask = ~(gpm_connect.eventMask | GPM_HARD);
++ gpm_connect.minMod = 0;
++ gpm_connect.maxMod = ~((1 << KG_SHIFT) | (1 << KG_SHIFTL) | (1 << KG_SHIFTR));
++ if (Gpm_Open(&gpm_connect, 0) >= 0) { /* returns the file-descriptor */
++ SP->_mouse_type = M_GPM;
++ SP->_mouse_fd = gpm_fd;
++ return;
++ }
+ }
+ #endif
+
+ /* OS/2 VIO */
+-#ifdef USE_EMX_MOUSE
++#if USE_EMX_MOUSE
+ if (!mouse_thread
+ && strstr(cur_term->type.term_names, "xterm") == 0
+ && key_mouse) {
+@@ -287,22 +390,87 @@
+ printf("mouse thread error %d=%#x", rc, rc);
+ return;
+ } else {
+- mousetype = M_XTERM;
++ SP->_mouse_type = M_XTERM;
+ return;
+ }
+ }
+ }
+ #endif
+
++#if USE_SYSMOUSE
++ {
++ struct mouse_info the_mouse;
++ char *the_device = 0;
++
++ if (isatty(SP->_ifd))
++ the_device = ttyname(SP->_ifd);
++ if (the_device == 0)
++ the_device = "/dev/tty";
++
++ SP->_mouse_fd = open(the_device, O_RDWR);
++
++ if (SP->_mouse_fd >= 0) {
++ /*
++ * sysmouse does not have a usable user interface for obtaining
++ * mouse events. The logical way to proceed (reading data on a
++ * stream) only works if one opens the device as root. Even in
++ * that mode, careful examination shows we lose events
++ * occasionally. The interface provided for user programs is to
++ * establish a signal handler. really.
++ *
++ * Take over SIGUSR2 for this purpose since SIGUSR1 is more
++ * likely to be used by an application. getch() will have to
++ * handle the misleading EINTR's.
++ */
++ signal(SIGUSR2, SIG_IGN);
++ the_mouse.operation = MOUSE_MODE;
++ the_mouse.u.mode.mode = 0;
++ the_mouse.u.mode.signal = SIGUSR2;
++ if (ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
++ signal(SIGUSR2, handle_sysmouse);
++ the_mouse.operation = MOUSE_SHOW;
++ ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
++
++#if defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) /* FreeBSD > 2.x */
++ {
++#ifndef FBIO_GETMODE /* FreeBSD 3.x */
++#define FBIO_GETMODE CONS_GET
++#define FBIO_MODEINFO CONS_MODEINFO
++#endif /* FBIO_GETMODE */
++ video_info_t the_video;
++
++ if (ioctl(SP->_mouse_fd,
++ FBIO_GETMODE,
++ &the_video.vi_mode) != -1
++ && ioctl(SP->_mouse_fd,
++ FBIO_MODEINFO,
++ &the_video) != -1) {
++ SP->_sysmouse_char_width = the_video.vi_cwidth;
++ SP->_sysmouse_char_height = the_video.vi_cheight;
++ }
++ }
++#endif /* defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) */
++
++ if (SP->_sysmouse_char_width <= 0)
++ SP->_sysmouse_char_width = 8;
++ if (SP->_sysmouse_char_height <= 0)
++ SP->_sysmouse_char_height = 16;
++ SP->_mouse_type = M_SYSMOUSE;
++ return;
++ }
++ }
++ }
++#endif /* USE_SYSMOUSE */
++
+ /* we know how to recognize mouse events under "xterm" */
+ if (key_mouse != 0) {
+ if (!strcmp(key_mouse, xterm_kmous)) {
+- mousetype = M_XTERM;
++ init_xterm_mouse();
+ return;
+ }
+ } else if (strstr(cur_term->type.term_names, "xterm") != 0) {
+ (void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE);
+- mousetype = M_XTERM;
++ init_xterm_mouse();
+ return;
+ }
+ }
+@@ -323,7 +491,7 @@
+
+ initialize_mousetype();
+
+- T(("_nc_mouse_init() set mousetype to %d", mousetype));
++ T(("_nc_mouse_init() set mousetype to %d", SP->_mouse_type));
+ }
+ }
+
+@@ -334,74 +502,113 @@
+ static bool
+ _nc_mouse_event(SCREEN * sp GCC_UNUSED)
+ {
+-#if USE_GPM_SUPPORT
+- /* GPM: query server for event, return TRUE if we find one */
+- Gpm_Event ev;
++ bool result = FALSE;
+
+- if (Gpm_GetEvent(&ev) == 1) {
+- eventp->id = 0; /* there's only one mouse... */
++ switch (SP->_mouse_type) {
++ case M_XTERM:
++ /* xterm: never have to query, mouse events are in the keyboard stream */
++#if USE_EMX_MOUSE
++ {
++ char kbuf[3];
+
+- eventp->bstate = 0;
+- switch (ev.type & 0x0f) {
+- case (GPM_DOWN):
+- if (ev.buttons & GPM_B_LEFT)
+- eventp->bstate |= BUTTON1_PRESSED;
+- if (ev.buttons & GPM_B_MIDDLE)
+- eventp->bstate |= BUTTON2_PRESSED;
+- if (ev.buttons & GPM_B_RIGHT)
+- eventp->bstate |= BUTTON3_PRESSED;
+- break;
+- case (GPM_UP):
+- if (ev.buttons & GPM_B_LEFT)
+- eventp->bstate |= BUTTON1_RELEASED;
+- if (ev.buttons & GPM_B_MIDDLE)
+- eventp->bstate |= BUTTON2_RELEASED;
+- if (ev.buttons & GPM_B_RIGHT)
+- eventp->bstate |= BUTTON3_RELEASED;
+- break;
+- default:
+- break;
++ int i, res = read(M_FD(sp), &kbuf, 3); /* Eat the prefix */
++ if (res != 3)
++ printf("Got %d chars instead of 3 for prefix.\n", res);
++ for (i = 0; i < res; i++) {
++ if (kbuf[i] != key_mouse[i])
++ printf("Got char %d instead of %d for prefix.\n",
++ (int) kbuf[i], (int) key_mouse[i]);
++ }
++ result = TRUE;
+ }
++#endif /* USE_EMX_MOUSE */
++ break;
+
+- eventp->x = ev.x - 1;
+- eventp->y = ev.y - 1;
+- eventp->z = 0;
++#if USE_GPM_SUPPORT
++ case M_GPM:
++ {
++ /* query server for event, return TRUE if we find one */
++ Gpm_Event ev;
+
+- /* bump the next-free pointer into the circular list */
+- eventp = NEXT(eventp);
+- return (TRUE);
+- }
++ if (Gpm_GetEvent(&ev) == 1) {
++ /* there's only one mouse... */
++ eventp->id = NORMAL_EVENT;
++
++ eventp->bstate = 0;
++ switch (ev.type & 0x0f) {
++ case (GPM_DOWN):
++ if (ev.buttons & GPM_B_LEFT)
++ eventp->bstate |= BUTTON1_PRESSED;
++ if (ev.buttons & GPM_B_MIDDLE)
++ eventp->bstate |= BUTTON2_PRESSED;
++ if (ev.buttons & GPM_B_RIGHT)
++ eventp->bstate |= BUTTON3_PRESSED;
++ break;
++ case (GPM_UP):
++ if (ev.buttons & GPM_B_LEFT)
++ eventp->bstate |= BUTTON1_RELEASED;
++ if (ev.buttons & GPM_B_MIDDLE)
++ eventp->bstate |= BUTTON2_RELEASED;
++ if (ev.buttons & GPM_B_RIGHT)
++ eventp->bstate |= BUTTON3_RELEASED;
++ break;
++ default:
++ break;
++ }
++
++ eventp->x = ev.x - 1;
++ eventp->y = ev.y - 1;
++ eventp->z = 0;
++
++ /* bump the next-free pointer into the circular list */
++ eventp = NEXT(eventp);
++ result = TRUE;
++ }
++ }
++ break;
+ #endif
+
+-#ifdef USE_EMX_MOUSE
+- {
+- char kbuf[3];
++#if USE_SYSMOUSE
++ case M_SYSMOUSE:
++ if (SP->_sysmouse_head < SP->_sysmouse_tail) {
++ *eventp = SP->_sysmouse_fifo[SP->_sysmouse_head];
+
+- int i, res = read(M_FD(sp), &kbuf, 3); /* Eat the prefix */
+- if (res != 3)
+- printf("Got %d chars instead of 3 for prefix.\n", res);
+- for (i = 0; i < res; i++) {
+- if (kbuf[i] != key_mouse[i])
+- printf("Got char %d instead of %d for prefix.\n",
+- (int) kbuf[i], (int) key_mouse[i]);
++ /*
++ * Point the fifo-head to the next possible location. If there
++ * are none, reset the indices. This may be interrupted by the
++ * signal handler, doing essentially the same reset.
++ */
++ SP->_sysmouse_head += 1;
++ if (SP->_sysmouse_head == SP->_sysmouse_tail) {
++ SP->_sysmouse_tail = 0;
++ SP->_sysmouse_head = 0;
++ }
++
++ /* bump the next-free pointer into the circular list */
++ eventp = NEXT(eventp);
++ result = TRUE;
+ }
+- return TRUE;
++ break;
++#endif /* USE_SYSMOUSE */
++
++ case M_NONE:
++ break;
+ }
+-#endif /* USE_EMX_MOUSE */
+
+- /* xterm: never have to query, mouse events are in the keyboard stream */
+- return (FALSE); /* no event waiting */
++ return result; /* true if we found an event */
+ }
+
+ static bool
+ _nc_mouse_inline(SCREEN * sp)
+ /* mouse report received in the keyboard stream -- parse its info */
+ {
++ bool result = FALSE;
++
+ TR(MY_TRACE, ("_nc_mouse_inline() called"));
+
+- if (mousetype == M_XTERM) {
++ if (SP->_mouse_type == M_XTERM) {
+ unsigned char kbuf[4];
+- MEVENT *prev;
++ mmask_t prev;
+ size_t grabbed;
+ int res;
+
+@@ -438,7 +645,7 @@
+ for (grabbed = 0; grabbed < 3; grabbed += res) {
+
+ /* For VIO mouse we add extra bit 64 to disambiguate button-up. */
+-#ifdef USE_EMX_MOUSE
++#if USE_EMX_MOUSE
+ res = read(M_FD(sp) >= 0 ? M_FD(sp) : sp->_ifd, &kbuf, 3);
+ #else
+ res = read(sp->_ifd, kbuf + grabbed, 3 - grabbed);
+@@ -451,59 +658,65 @@
+ TR(TRACE_IEVENT,
+ ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf));
+
+- eventp->id = 0; /* there's only one mouse... */
++ /* there's only one mouse... */
++ eventp->id = NORMAL_EVENT;
+
+ /* 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)
++#else
++#define PRESS_POSITION(n) \
++ eventp->bstate = (prev & MASK_PRESS(n) \
++ ? REPORT_MOUSE_POSITION \
++ : MASK_PRESS(n))
++#endif
++
+ switch (kbuf[0] & 0x3) {
+ case 0x0:
+- eventp->bstate = BUTTON1_PRESSED;
+-#ifdef USE_EMX_MOUSE
+- if (kbuf[0] & 0x40)
+- eventp->bstate = BUTTON1_RELEASED;
+-#endif
++ PRESS_POSITION(1);
+ break;
+
+ case 0x1:
+- eventp->bstate = BUTTON2_PRESSED;
+-#ifdef USE_EMX_MOUSE
+- if (kbuf[0] & 0x40)
+- eventp->bstate = BUTTON2_RELEASED;
+-#endif
++ PRESS_POSITION(2);
+ break;
+
+ case 0x2:
+- eventp->bstate = BUTTON3_PRESSED;
+-#ifdef USE_EMX_MOUSE
+- if (kbuf[0] & 0x40)
+- eventp->bstate = BUTTON3_RELEASED;
+-#endif
++ PRESS_POSITION(3);
+ break;
+
+ case 0x3:
+ /*
+- * Release events aren't reported for individual buttons,
+- * just for the button set as a whole...
+- */
+- eventp->bstate =
+- (BUTTON1_RELEASED |
+- BUTTON2_RELEASED |
+- BUTTON3_RELEASED);
+- /*
+- * ...however, because there are no kinds of mouse events under
+- * xterm that can intervene between press and release, we can
+- * deduce which buttons were actually released by looking at the
+- * previous event.
++ * Release events aren't reported for individual buttons, just for
++ * the button set as a whole. However, because there are normally
++ * no mouse events under xterm that intervene between press and
++ * release, we can infer the button actually released by looking at
++ * the previous event.
+ */
+- prev = PREV(eventp);
+- if (!(prev->bstate & BUTTON1_PRESSED))
+- eventp->bstate &= ~BUTTON1_RELEASED;
+- if (!(prev->bstate & BUTTON2_PRESSED))
+- eventp->bstate &= ~BUTTON2_RELEASED;
+- if (!(prev->bstate & BUTTON3_PRESSED))
+- eventp->bstate &= ~BUTTON3_RELEASED;
++ if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) {
++ eventp->bstate = BUTTON_RELEASED;
++ if (!(prev & BUTTON1_PRESSED))
++ eventp->bstate &= ~BUTTON1_RELEASED;
++ if (!(prev & BUTTON2_PRESSED))
++ eventp->bstate &= ~BUTTON2_RELEASED;
++ if (!(prev & BUTTON3_PRESSED))
++ eventp->bstate &= ~BUTTON3_RELEASED;
++ } else {
++ /*
++ * XFree86 xterm will return a stream of release-events to
++ * let the application know where the mouse is going, if the
++ * private mode 1002 or 1003 is enabled.
++ */
++ eventp->bstate = REPORT_MOUSE_POSITION;
++ }
+ break;
+ }
++ result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE;
+
+ if (kbuf[0] & 4) {
+ eventp->bstate |= BUTTON_SHIFT;
+@@ -529,7 +742,7 @@
+ #endif
+ }
+
+- return (FALSE);
++ return (result);
+ }
+
+ static void
+@@ -542,16 +755,16 @@
+
+ if (on) {
+
+- switch (mousetype) {
++ switch (SP->_mouse_type) {
+ case M_XTERM:
+ #if NCURSES_EXT_FUNCS
+ keyok(KEY_MOUSE, on);
+ #endif
+ TPUTS_TRACE("xterm mouse initialization");
+-#ifdef USE_EMX_MOUSE
++#if USE_EMX_MOUSE
+ server_state(1);
+ #else
+- putp("\033[?1000h");
++ enable_xterm_mouse(1);
+ #endif
+ break;
+ #if USE_GPM_SUPPORT
+@@ -559,6 +772,13 @@
+ SP->_mouse_fd = gpm_fd;
+ break;
+ #endif
++#if USE_SYSMOUSE
++ case M_SYSMOUSE:
++ signal(SIGUSR2, handle_sysmouse);
++ break;
++#endif
++ case M_NONE:
++ return;
+ }
+ /* Make runtime binding to cut down on object size of applications that
+ * do not use the mouse (e.g., 'clear').
+@@ -571,19 +791,26 @@
+
+ } else {
+
+- switch (mousetype) {
++ switch (SP->_mouse_type) {
+ case M_XTERM:
+ TPUTS_TRACE("xterm mouse deinitialization");
+-#ifdef USE_EMX_MOUSE
++#if USE_EMX_MOUSE
+ server_state(0);
+ #else
+- putp("\033[?1000l");
++ enable_xterm_mouse(0);
+ #endif
+ break;
+ #if USE_GPM_SUPPORT
+ case M_GPM:
+ break;
+ #endif
++#if USE_SYSMOUSE
++ case M_SYSMOUSE:
++ signal(SIGUSR2, SIG_IGN);
++ break;
++#endif
++ case M_NONE:
++ return;
+ }
+ }
+ _nc_flush();
+@@ -631,7 +858,7 @@
+ ("_nc_mouse_parse: returning simple mouse event %s at slot %ld",
+ _tracemouse(prev),
+ (long) (prev - events)));
+- return (prev->id >= 0)
++ return (prev->id >= NORMAL_EVENT)
+ ? ((prev->bstate & eventmask) ? TRUE : FALSE)
+ : FALSE;
+ }
+@@ -657,7 +884,7 @@
+ merge = FALSE;
+ for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
+ if (ep->x == next->x && ep->y == next->y
+- && (ep->bstate & (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED))
++ && (ep->bstate & BUTTON_PRESSED)
+ && (!(ep->bstate & BUTTON1_PRESSED)
+ == !(next->bstate & BUTTON1_RELEASED))
+ && (!(ep->bstate & BUTTON2_PRESSED)
+@@ -729,10 +956,8 @@
+ continue;
+
+ /* merge click events forward */
+- if ((ep->bstate &
+- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))
+- && (follower->bstate &
+- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))) {
++ if ((ep->bstate & BUTTON_CLICKED)
++ && (follower->bstate & BUTTON_CLICKED)) {
+ if ((eventmask & BUTTON1_DOUBLE_CLICKED)
+ && (follower->bstate & BUTTON1_CLICKED)) {
+ follower->bstate &= ~BUTTON1_CLICKED;
+@@ -760,8 +985,7 @@
+ (BUTTON1_DOUBLE_CLICKED
+ | BUTTON2_DOUBLE_CLICKED
+ | BUTTON3_DOUBLE_CLICKED))
+- && (follower->bstate &
+- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))) {
++ && (follower->bstate & BUTTON_CLICKED)) {
+ if ((eventmask & BUTTON1_TRIPLE_CLICKED)
+ && (follower->bstate & BUTTON1_CLICKED)) {
+ follower->bstate &= ~BUTTON1_CLICKED;
+@@ -831,7 +1055,7 @@
+ {
+ TR(MY_TRACE, ("_nc_mouse_wrap() called"));
+
+- switch (mousetype) {
++ switch (SP->_mouse_type) {
+ case M_XTERM:
+ if (eventmask)
+ mouse_activate(FALSE);
+@@ -841,6 +1065,13 @@
+ case M_GPM:
+ break;
+ #endif
++#if USE_SYSMOUSE
++ case M_SYSMOUSE:
++ mouse_activate(FALSE);
++ break;
++#endif
++ case M_NONE:
++ break;
+ }
+ }
+
+@@ -850,11 +1081,27 @@
+ {
+ TR(MY_TRACE, ("_nc_mouse_resume() called"));
+
+- /* xterm: re-enable reporting */
+- if (mousetype == M_XTERM && eventmask)
+- mouse_activate(TRUE);
++ switch (SP->_mouse_type) {
++ case M_XTERM:
++ /* xterm: re-enable reporting */
++ if (eventmask)
++ mouse_activate(TRUE);
++ break;
+
+- /* GPM: reclaim our event set */
++#if USE_GPM_SUPPORT
++ case M_GPM:
++ /* GPM: reclaim our event set */
++ break;
++#endif
++
++#if USE_SYSMOUSE
++ case M_SYSMOUSE:
++ mouse_activate(TRUE);
++ break;
++#endif
++ case M_NONE:
++ break;
++ }
+ }
+
+ /**************************************************************************
+@@ -869,7 +1116,7 @@
+ {
+ T((T_CALLED("getmouse(%p)"), aevent));
+
+- if (aevent && (mousetype != M_NONE)) {
++ if (aevent && (SP->_mouse_type != M_NONE)) {
+ /* compute the current-event pointer */
+ MEVENT *prev = PREV(eventp);
+
+@@ -917,14 +1164,14 @@
+ returnBits(0);
+
+ _nc_mouse_init();
+- if (mousetype != M_NONE) {
++ if (SP->_mouse_type != M_NONE) {
+ eventmask = newmask &
+- (BUTTON_ALT | BUTTON_CTRL | BUTTON_SHIFT
+- | BUTTON1_PRESSED | BUTTON1_RELEASED | BUTTON1_CLICKED
++ (REPORT_MOUSE_POSITION | BUTTON_ALT | BUTTON_CTRL | BUTTON_SHIFT
++ | BUTTON_PRESSED
++ | BUTTON_RELEASED
++ | BUTTON_CLICKED
+ | BUTTON1_DOUBLE_CLICKED | BUTTON1_TRIPLE_CLICKED
+- | BUTTON2_PRESSED | BUTTON2_RELEASED | BUTTON2_CLICKED
+ | BUTTON2_DOUBLE_CLICKED | BUTTON2_TRIPLE_CLICKED
+- | BUTTON3_PRESSED | BUTTON3_RELEASED | BUTTON3_CLICKED
+ | BUTTON3_DOUBLE_CLICKED | BUTTON3_TRIPLE_CLICKED);
+
+ mouse_activate(eventmask != 0);
+@@ -977,7 +1224,7 @@
+ NCURSES_EXPORT(int)
+ _nc_has_mouse(void)
+ {
+- return (mousetype == M_NONE ? 0 : 1);
++ return (SP->_mouse_type == M_NONE ? 0 : 1);
+ }
+
+ NCURSES_EXPORT(bool)
+@@ -1010,5 +1257,3 @@
+ }
+ returnBool(result);
+ }
+-
+-/* lib_mouse.c ends here */
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_newterm.c ncurses-5.3.20030906.orig/ncurses/base/lib_newterm.c
+--- ncurses-5.3/ncurses/base/lib_newterm.c Sat Oct 12 10:24:08 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_newterm.c Tue May 13 20:08:22 2003
+@@ -47,7 +47,7 @@
+ #include <term.h> /* clear_screen, cup & friends, cur_term */
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_newterm.c,v 1.56 2002/10/12 15:24:08 tom Exp $")
++MODULE_ID("$Id: lib_newterm.c,v 1.57 2002/10/20 00:10:56 Philippe.Blain Exp $")
+
+ #ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */
+ #define ONLCR 0
+@@ -119,13 +119,6 @@
+ if (filter_mode) {
+ LINES = 1;
+
+- if (VALID_NUMERIC(init_tabs))
+- TABSIZE = init_tabs;
+- else
+- TABSIZE = 8;
+-
+- T(("TABSIZE = %d", TABSIZE));
+-
+ clear_screen = 0;
+ cursor_down = parm_down_cursor = 0;
+ cursor_address = 0;
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_printw.c ncurses-5.3.20030906.orig/ncurses/base/lib_printw.c
+--- ncurses-5.3/ncurses/base/lib_printw.c Sat Oct 5 17:52:21 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_printw.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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,10 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_printw.c,v 1.13 2002/10/05 22:52:21 tom Exp $")
++MODULE_ID("$Id: lib_printw.c,v 1.15 2003/02/08 20:50:13 tom Exp $")
+
+ NCURSES_EXPORT(int)
+-printw(NCURSES_CONST char *fmt,...)
++printw(const char *fmt,...)
+ {
+ va_list argp;
+ int code;
+@@ -62,7 +62,7 @@
+ }
+
+ NCURSES_EXPORT(int)
+-wprintw(WINDOW *win, NCURSES_CONST char *fmt,...)
++wprintw(WINDOW *win, const char *fmt,...)
+ {
+ va_list argp;
+ int code;
+@@ -82,7 +82,7 @@
+ }
+
+ NCURSES_EXPORT(int)
+-mvprintw(int y, int x, NCURSES_CONST char *fmt,...)
++mvprintw(int y, int x, const char *fmt,...)
+ {
+ va_list argp;
+ int code;
+@@ -103,7 +103,7 @@
+ }
+
+ NCURSES_EXPORT(int)
+-mvwprintw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt,...)
++mvwprintw(WINDOW *win, int y, int x, const char *fmt,...)
+ {
+ va_list argp;
+ int code;
+@@ -124,7 +124,7 @@
+ }
+
+ NCURSES_EXPORT(int)
+-vwprintw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
++vwprintw(WINDOW *win, const char *fmt, va_list argp)
+ {
+ char *buf;
+ int code = ERR;
+@@ -134,9 +134,6 @@
+
+ if ((buf = _nc_printf_string(fmt, argp)) != 0) {
+ code = waddstr(win, buf);
+-#if USE_SAFE_SPRINTF
+- free(buf);
+-#endif
+ }
+ returnCode(code);
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_scroll.c ncurses-5.3.20030906.orig/ncurses/base/lib_scroll.c
+--- ncurses-5.3/ncurses/base/lib_scroll.c Tue Dec 18 19:06:55 2001
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_scroll.c Fri Sep 12 16:41:24 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998,2001,2003 Free 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-2001 *
++ * Author: Thomas E. Dickey 1996-2003 *
+ * and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ ****************************************************************************/
+@@ -43,7 +43,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_scroll.c,v 1.23 2001/12/19 01:06:55 tom Exp $")
++MODULE_ID("$Id: lib_scroll.c,v 1.24 2003/07/26 23:25:26 tom Exp $")
+
+ NCURSES_EXPORT(void)
+ _nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
+@@ -77,24 +77,15 @@
+ /* shift n lines downwards */
+ if (n < 0) {
+ limit = top - n;
+- if (limit > win->_maxy)
+- limit = win->_maxy;
+- for (line = bottom; line >= limit; line--) {
+- if (line + n >= 0) {
+- TR(TRACE_MOVE, ("...copying %d to %d", line + n, line));
+- memcpy(win->_line[line].text,
+- win->_line[line + n].text,
+- to_copy);
+- if_USE_SCROLL_HINTS(win->_line[line].oldindex =
+- win->_line[line + n].oldindex);
+- } else {
+- TR(TRACE_MOVE, ("...filling %d", line));
+- for (j = 0; j <= win->_maxx; j++)
+- win->_line[line].text[j] = blank;
+- if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
+- }
++ for (line = bottom; line >= limit && line >= 0; line--) {
++ TR(TRACE_MOVE, ("...copying %d to %d", line + n, line));
++ memcpy(win->_line[line].text,
++ win->_line[line + n].text,
++ to_copy);
++ if_USE_SCROLL_HINTS(win->_line[line].oldindex =
++ win->_line[line + n].oldindex);
+ }
+- for (line = top; line < limit; line++) {
++ for (line = top; line < limit && line <= win->_maxy; line++) {
+ TR(TRACE_MOVE, ("...filling %d", line));
+ for (j = 0; j <= win->_maxx; j++)
+ win->_line[line].text[j] = blank;
+@@ -105,25 +96,14 @@
+ /* shift n lines upwards */
+ if (n > 0) {
+ limit = bottom - n;
+- if (limit < 0)
+- limit = 0;
+- for (line = top; line <= limit; line++) {
+- if (line + n <= win->_maxy) {
+- TR(TRACE_MOVE, ("...copying %d to %d", line + n, line));
+- memcpy(win->_line[line].text,
+- win->_line[line + n].text,
+- to_copy);
+- if_USE_SCROLL_HINTS(win->_line[line].oldindex =
+- win->_line[line + n].oldindex);
+- } else {
+- TR(TRACE_MOVE, ("...filling %d", line));
+- for (j = 0; j <= win->_maxx; j++)
+- win->_line[line].text[j] = blank;
+- if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
+- }
++ for (line = top; line <= limit && line <= win->_maxy; line++) {
++ memcpy(win->_line[line].text,
++ win->_line[line + n].text,
++ to_copy);
++ if_USE_SCROLL_HINTS(win->_line[line].oldindex =
++ win->_line[line + n].oldindex);
+ }
+- for (line = bottom; line > limit; line--) {
+- TR(TRACE_MOVE, ("...filling %d", line));
++ for (line = bottom; line > limit && line >= 0; line--) {
+ for (j = 0; j <= win->_maxx; j++)
+ win->_line[line].text[j] = blank;
+ if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
+@@ -142,11 +122,9 @@
+ returnCode(ERR);
+ }
+
+- if (n == 0)
+- returnCode(OK);
+-
+- _nc_scroll_window(win, n, win->_regtop, win->_regbottom, win->_nc_bkgd);
+-
+- _nc_synchook(win);
++ if (n != 0) {
++ _nc_scroll_window(win, n, win->_regtop, win->_regbottom, win->_nc_bkgd);
++ _nc_synchook(win);
++ }
+ returnCode(OK);
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_set_term.c ncurses-5.3.20030906.orig/ncurses/base/lib_set_term.c
+--- ncurses-5.3/ncurses/base/lib_set_term.c Sat Sep 14 17:48:00 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_set_term.c Fri Sep 12 16:41:56 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 <term.h> /* cur_term */
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_set_term.c,v 1.71 2002/09/14 22:48:00 tom Exp $")
++MODULE_ID("$Id: lib_set_term.c,v 1.78 2003/08/09 20:41:12 tom Exp $")
+
+ NCURSES_EXPORT(SCREEN *)
+ set_term(SCREEN * screenp)
+@@ -61,7 +61,6 @@
+ stdscr = SP->_stdscr;
+ COLORS = SP->_color_count;
+ COLOR_PAIRS = SP->_pair_count;
+- memcpy(acs_map, SP->_acs_map, sizeof(SP->_acs_map[0]) * ACS_LEN);
+
+ T((T_RETURN("%p"), oldSP));
+ return (oldSP);
+@@ -84,6 +83,7 @@
+ delscreen(SCREEN * sp)
+ {
+ SCREEN **scan = &_nc_screen_chain;
++ int i;
+
+ T((T_CALLED("delscreen(%p)"), sp));
+
+@@ -100,8 +100,13 @@
+ (void) _nc_freewin(sp->_stdscr);
+
+ if (sp->_slk != 0) {
+- FreeIfNeeded(sp->_slk->ent);
+- FreeIfNeeded(sp->_slk->buffer);
++ if (sp->_slk->ent != 0) {
++ for (i = 0; i < sp->_slk->labcnt; ++i) {
++ FreeIfNeeded(sp->_slk->ent[i].ent_text);
++ FreeIfNeeded(sp->_slk->ent[i].form_text);
++ }
++ free(sp->_slk->ent);
++ }
+ free(sp->_slk);
+ sp->_slk = 0;
+ }
+@@ -204,7 +209,7 @@
+ #endif
+
+ NCURSES_EXPORT(int)
+-_nc_setupscreen(short slines, short const scolumns, FILE * output)
++_nc_setupscreen(short slines, short const scolumns, FILE *output)
+ /* OS-independent screen initializations */
+ {
+ int bottom_stolen = 0;
+@@ -377,8 +382,15 @@
+ _nc_init_acs();
+ #if USE_WIDEC_SUPPORT
+ _nc_init_wacs();
++
++ SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs());
++ {
++ char *env = _nc_get_locale();
++ SP->_posix_locale = ((env == 0)
++ || !strcmp(env, "C")
++ || !strcmp(env, "POSIX"));
++ }
+ #endif
+- memcpy(SP->_acs_map, acs_map, sizeof(chtype) * ACS_LEN);
+
+ _nc_idcok = TRUE;
+ _nc_idlok = FALSE;
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_slk.c ncurses-5.3.20030906.orig/ncurses/base/lib_slk.c
+--- ncurses-5.3/ncurses/base/lib_slk.c Sat Sep 28 12:46:40 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_slk.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 <ctype.h>
+ #include <term.h> /* num_labels, label_*, plab_norm */
+
+-MODULE_ID("$Id: lib_slk.c,v 1.24 2002/09/28 17:46:40 tom Exp $")
++MODULE_ID("$Id: lib_slk.c,v 1.28 2003/05/24 21:10:28 tom Exp $")
+
+ /*
+ * We'd like to move these into the screen context structure, but cannot,
+@@ -64,12 +64,26 @@
+ wmove(win, 0, 0);
+
+ for (i = 0; i < SP->_slk->maxlab; i++) {
+- mvwprintw(win, 0, SP->_slk->ent[i].x, "F%d", i + 1);
++ mvwprintw(win, 0, SP->_slk->ent[i].ent_x, "F%d", i + 1);
+ }
+ }
+ }
+
+ /*
++ * Free any memory related to soft labels, return an error.
++ */
++static int
++slk_failed(void)
++{
++ if (SP->_slk) {
++ FreeIfNeeded(SP->_slk->ent);
++ free(SP->_slk);
++ SP->_slk = (SLK *) 0;
++ }
++ return ERR;
++}
++
++/*
+ * Initialize soft labels.
+ * Called from newterm()
+ */
+@@ -78,19 +92,26 @@
+ {
+ int i, x;
+ int res = OK;
+- char *p;
+ unsigned max_length;
+
+- T(("slk_initialize()"));
++ T((T_CALLED("_nc_slk_initialize()")));
+
+ if (SP->_slk) { /* we did this already, so simply return */
+- return (OK);
++ returnCode(OK);
+ } else if ((SP->_slk = typeCalloc(SLK, 1)) == 0)
+- return (ERR);
++ returnCode(ERR);
+
+ SP->_slk->ent = NULL;
+- SP->_slk->buffer = NULL;
+- SP->_slk->attr = A_STANDOUT;
++
++ /*
++ * If we use colors, vidputs() will suppress video attributes that conflict
++ * with colors. In that case, we're still guaranteed that "reverse" would
++ * work.
++ */
++ if ((no_color_video & 1) == 0)
++ SP->_slk->attr = A_STANDOUT;
++ else
++ SP->_slk->attr = A_REVERSE;
+
+ SP->_slk->maxlab = ((num_labels > 0)
+ ? num_labels
+@@ -106,19 +127,19 @@
+ || SP->_slk->labcnt <= 0
+ || (SP->_slk->ent = typeCalloc(slk_ent,
+ (unsigned) SP->_slk->labcnt)) == NULL)
+- goto exception;
++ returnCode(slk_failed());
+
+ max_length = SP->_slk->maxlen;
+- p = SP->_slk->buffer = (char *) calloc((unsigned) (2 * SP->_slk->labcnt),
+- (1 + max_length));
+- if (SP->_slk->buffer == NULL)
+- goto exception;
+-
+ for (i = 0; i < SP->_slk->labcnt; i++) {
+- SP->_slk->ent[i].text = p;
+- p += (1 + max_length);
+- SP->_slk->ent[i].form_text = p;
+- p += (1 + max_length);
++
++ if ((SP->_slk->ent[i].ent_text = (char *)_nc_doalloc(0, max_length + 1)) == 0)
++ returnCode(slk_failed());
++ memset(SP->_slk->ent[i].ent_text, 0, max_length + 1);
++
++ if ((SP->_slk->ent[i].form_text = (char *)_nc_doalloc(0, max_length + 1)) == 0)
++ returnCode(slk_failed());
++ memset(SP->_slk->ent[i].form_text, 0, max_length + 1);
++
+ memset(SP->_slk->ent[i].form_text, ' ', max_length);
+ SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
+ }
+@@ -129,7 +150,7 @@
+ gap = 1;
+
+ for (i = x = 0; i < SP->_slk->maxlab; i++) {
+- SP->_slk->ent[i].x = x;
++ SP->_slk->ent[i].ent_x = x;
+ x += max_length;
+ x += (i == 3 || i == 7) ? gap : 1;
+ }
+@@ -141,7 +162,7 @@
+ if (gap < 1)
+ gap = 1;
+ for (i = x = 0; i < SP->_slk->maxlab; i++) {
+- SP->_slk->ent[i].x = x;
++ SP->_slk->ent[i].ent_x = x;
+ x += max_length;
+ x += (i == 3) ? gap : 1;
+ }
+@@ -153,24 +174,17 @@
+ if (gap < 1)
+ gap = 1;
+ for (i = x = 0; i < SP->_slk->maxlab; i++) {
+- SP->_slk->ent[i].x = x;
++ SP->_slk->ent[i].ent_x = x;
+ x += max_length;
+ x += (i == 2 || i == 4) ? gap : 1;
+ }
+ } else
+- goto exception;
++ returnCode(slk_failed());
+ }
+ }
+ SP->_slk->dirty = TRUE;
+ if ((SP->_slk->win = stwin) == NULL) {
+- exception:
+- if (SP->_slk) {
+- FreeIfNeeded(SP->_slk->buffer);
+- FreeIfNeeded(SP->_slk->ent);
+- free(SP->_slk);
+- SP->_slk = (SLK *) 0;
+- res = (ERR);
+- }
++ returnCode(slk_failed());
+ }
+
+ /* We now reset the format so that the next newterm has again
+@@ -179,7 +193,7 @@
+ */
+ SP->slk_format = _nc_slk_format;
+ _nc_slk_format = 0;
+- return (res);
++ returnCode(res);
+ }
+
+ /*
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_slklab.c ncurses-5.3.20030906.orig/ncurses/base/lib_slklab.c
+--- ncurses-5.3/ncurses/base/lib_slklab.c Sat Dec 9 20:43:27 2000
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_slklab.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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_slklab.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
++MODULE_ID("$Id: lib_slklab.c,v 1.7 2003/03/29 22:53:48 tom Exp $")
+
+ NCURSES_EXPORT(char *)
+ slk_label(int n)
+@@ -47,5 +47,5 @@
+
+ if (SP == NULL || SP->_slk == NULL || n < 1 || n > SP->_slk->labcnt)
+ returnPtr(0);
+- returnPtr(SP->_slk->ent[n - 1].text);
++ returnPtr(SP->_slk->ent[n - 1].ent_text);
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_slkrefr.c ncurses-5.3.20030906.orig/ncurses/base/lib_slkrefr.c
+--- ncurses-5.3/ncurses/base/lib_slkrefr.c Sat Dec 9 20:43:27 2000
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_slkrefr.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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>
+ #include <term.h> /* num_labels, label_*, plab_norm */
+
+-MODULE_ID("$Id: lib_slkrefr.c,v 1.10 2000/12/10 02:43:27 tom Exp $")
++MODULE_ID("$Id: lib_slkrefr.c,v 1.11 2003/03/29 22:53:48 tom Exp $")
+
+ /*
+ * Write the soft labels to the soft-key window.
+@@ -58,7 +58,7 @@
+ putp(tparm(plab_norm, i + 1, slk->ent[i].form_text));
+ }
+ } else {
+- wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].x);
++ wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
+ if (SP && SP->_slk)
+ wattrset(slk->win, SP->_slk->attr);
+ waddnstr(slk->win, slk->ent[i].form_text,
+diff -urNd -urNd ncurses-5.3/ncurses/base/lib_slkset.c ncurses-5.3.20030906.orig/ncurses/base/lib_slkset.c
+--- ncurses-5.3/ncurses/base/lib_slkset.c Sat Jun 2 17:50:29 2001
++++ ncurses-5.3.20030906.orig/ncurses/base/lib_slkset.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2003 Free 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,13 +38,14 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_slkset.c,v 1.7 2001/06/02 22:50:29 skimo Exp $")
++MODULE_ID("$Id: lib_slkset.c,v 1.10 2003/04/12 21:32:16 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ slk_set(int i, const char *astr, int format)
+ {
+ SLK *slk = SP->_slk;
+ size_t len;
++ int offset;
+ const char *str = astr;
+ const char *p;
+
+@@ -64,33 +65,30 @@
+ --i; /* Adjust numbering of labels */
+
+ len = (size_t) (p - str);
+- if (len > (unsigned) slk->maxlen)
++ if (len > (size_t) slk->maxlen)
+ len = slk->maxlen;
+ if (len == 0)
+- slk->ent[i].text[0] = 0;
++ slk->ent[i].ent_text[0] = 0;
+ else
+- (void) strncpy(slk->ent[i].text, str, len);
++ strncpy(slk->ent[i].ent_text, str, len)[len] = 0;
+ memset(slk->ent[i].form_text, ' ', (unsigned) slk->maxlen);
+- slk->ent[i].text[slk->maxlen] = 0;
+- /* len = strlen(slk->ent[i].text); */
++ slk->ent[i].ent_text[slk->maxlen] = 0;
+
+ switch (format) {
++ default:
+ case 0: /* left-justified */
+- memcpy(slk->ent[i].form_text,
+- slk->ent[i].text,
+- len);
++ offset = 0;
+ break;
+ case 1: /* centered */
+- memcpy(slk->ent[i].form_text + (slk->maxlen - len) / 2,
+- slk->ent[i].text,
+- len);
++ offset = (slk->maxlen - len) / 2;
+ break;
+ case 2: /* right-justified */
+- memcpy(slk->ent[i].form_text + slk->maxlen - len,
+- slk->ent[i].text,
+- len);
++ offset = slk->maxlen - len;
+ break;
+ }
++ memcpy(slk->ent[i].form_text + offset,
++ slk->ent[i].ent_text,
++ len);
+ slk->ent[i].form_text[slk->maxlen] = 0;
+ slk->ent[i].dirty = TRUE;
+ returnCode(OK);
+diff -urNd -urNd ncurses-5.3/ncurses/base/resizeterm.c ncurses-5.3.20030906.orig/ncurses/base/resizeterm.c
+--- ncurses-5.3/ncurses/base/resizeterm.c Sat Jul 13 16:32:57 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/resizeterm.c Tue May 13 20:08:22 2003
+@@ -41,10 +41,13 @@
+ #include <curses.priv.h>
+ #include <term.h>
+
+-MODULE_ID("$Id: resizeterm.c,v 1.14 2002/07/13 21:32:57 tom Exp $")
++MODULE_ID("$Id: resizeterm.c,v 1.15 2002/12/28 01:21:34 tom Exp $")
+
+ #define stolen_lines (screen_lines - SP->_lines_avail)
+
++static int current_lines;
++static int current_cols;
++
+ NCURSES_EXPORT(bool)
+ is_term_resized(int ToLines, int ToCols)
+ {
+@@ -99,7 +102,7 @@
+ adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen)
+ {
+ int result;
+- int bottom = screen_lines + SP->_topstolen - stolen;
++ int bottom = current_lines + SP->_topstolen - stolen;
+ int myLines = win->_maxy + 1;
+ int myCols = win->_maxx + 1;
+
+@@ -109,13 +112,13 @@
+ getbegy(win), getbegx(win)));
+
+ if (win->_begy >= bottom) {
+- win->_begy += (ToLines - screen_lines);
++ win->_begy += (ToLines - current_lines);
+ } else {
+- if (myLines == screen_lines - stolen
+- && ToLines != screen_lines)
++ if (myLines == current_lines - stolen
++ && ToLines != current_lines)
+ myLines = ToLines - stolen;
+- else if (myLines == screen_lines
+- && ToLines != screen_lines)
++ else if (myLines == current_lines
++ && ToLines != current_lines)
+ myLines = ToLines;
+ }
+
+@@ -125,12 +128,12 @@
+ if (myCols > ToCols)
+ myCols = ToCols;
+
+- if (myLines == screen_lines
+- && ToLines != screen_lines)
+- myCols = ToLines;
++ if (myLines == current_lines
++ && ToLines != current_lines)
++ myLines = ToLines;
+
+- if (myCols == screen_columns
+- && ToCols != screen_columns)
++ if (myCols == current_cols
++ && ToCols != current_cols)
+ myCols = ToCols;
+
+ result = wresize(win, myLines, myCols);
+@@ -216,15 +219,19 @@
+ screen_lines, screen_columns));
+
+ if (is_term_resized(ToLines, ToCols)) {
+- int myLines = screen_lines;
+- int myCols = screen_columns;
++ int myLines = current_lines = screen_lines;
++ int myCols = current_cols = screen_columns;
+
+ if (ToLines > screen_lines) {
+ increase_size(myLines = ToLines, myCols, was_stolen);
++ current_lines = myLines;
++ current_cols = myCols;
+ }
+
+ if (ToCols > screen_columns) {
+ increase_size(myLines, myCols = ToCols, was_stolen);
++ current_lines = myLines;
++ current_cols = myCols;
+ }
+
+ if (ToLines < myLines ||
+diff -urNd -urNd ncurses-5.3/ncurses/base/safe_sprintf.c ncurses-5.3.20030906.orig/ncurses/base/safe_sprintf.c
+--- ncurses-5.3/ncurses/base/safe_sprintf.c Sat Jul 7 19:58:34 2001
++++ ncurses-5.3.20030906.orig/ncurses/base/safe_sprintf.c Fri Sep 12 16:41:56 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,7 +33,7 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: safe_sprintf.c,v 1.14 2001/07/08 00:58:34 tom Exp $")
++MODULE_ID("$Id: safe_sprintf.c,v 1.18 2003/08/09 21:52:04 tom Exp $")
+
+ #if USE_SAFE_SPRINTF
+
+@@ -56,10 +56,13 @@
+ char *buffer;
+ char *format;
+ int len = 0;
++ size_t fmt_len;
++ char fmt_arg[BUFSIZ];
+
+ if (fmt == 0 || *fmt == '\0')
+- return -1;
+- if ((format = typeMalloc(char, strlen(fmt) + 1)) == 0)
++ return 0;
++ fmt_len = strlen(fmt) + 1;
++ if ((format = typeMalloc(char, fmt_len)) == 0)
+ return -1;
+ if ((buffer = typeMalloc(char, length)) == 0) {
+ free(format);
+@@ -106,7 +109,12 @@
+ } else if (state == Prec) {
+ prec = ival;
+ }
+- sprintf(&format[--f], "%d", ival);
++ sprintf(fmt_arg, "%d", ival);
++ fmt_len += strlen(fmt_arg);
++ if ((format = realloc(format, fmt_len)) == 0) {
++ return -1;
++ }
++ strcpy(&format[--f], fmt_arg);
+ f = strlen(format);
+ } else if (isalpha(UChar(*fmt))) {
+ done = TRUE;
+@@ -203,42 +211,52 @@
+ * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
+ */
+ NCURSES_EXPORT(char *)
+-_nc_printf_string
+-(const char *fmt, va_list ap)
++_nc_printf_string(const char *fmt, va_list ap)
+ {
++ static char *buf;
++ static size_t used;
++ char *result = 0;
++
++ if (fmt != 0) {
+ #if USE_SAFE_SPRINTF
+- char *buf = 0;
+- int len = _nc_printf_length(fmt, ap);
++ int len = _nc_printf_length(fmt, ap);
+
+- if (len > 0) {
+- if ((buf = typeMalloc(char, len + 1)) == 0)
+- return (0);
+- vsprintf(buf, fmt, ap);
+- }
++ if ((int) used < len + 1) {
++ used = 2 * (len + 1);
++ buf = typeRealloc(char, used, buf);
++ }
++ if (buf != 0) {
++ *buf = '\0';
++ if (len >= 0) {
++ vsprintf(buf, fmt, ap);
++ }
++ result = buf;
++ }
+ #else
+- static int rows, cols;
+- static char *buf;
+- static size_t len;
++ static int rows, cols;
+
+- if (screen_lines > rows || screen_columns > cols) {
+- if (screen_lines > rows)
+- rows = screen_lines;
+- if (screen_columns > cols)
+- cols = screen_columns;
+- len = (rows * (cols + 1)) + 1;
+- buf = typeRealloc(char, len, buf);
+- if (buf == 0) {
+- return (0);
++ if (screen_lines > rows || screen_columns > cols) {
++ if (screen_lines > rows)
++ rows = screen_lines;
++ if (screen_columns > cols)
++ cols = screen_columns;
++ used = (rows * (cols + 1)) + 1;
++ buf = typeRealloc(char, used, buf);
+ }
+- }
+
+- if (buf != 0) {
++ if (buf != 0) {
+ # if HAVE_VSNPRINTF
+- vsnprintf(buf, len, fmt, ap); /* GNU extension */
++ vsnprintf(buf, used, fmt, ap); /* GNU extension */
+ # else
+- vsprintf(buf, fmt, ap); /* ANSI */
++ vsprintf(buf, fmt, ap); /* ANSI */
+ # endif
+- }
++ result = buf;
++ }
+ #endif
+- return buf;
++ } else if (buf != 0) { /* see _nc_freeall() */
++ free(buf);
++ buf = 0;
++ used = 0;
++ }
++ return result;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/tries.c ncurses-5.3.20030906.orig/ncurses/base/tries.c
+--- ncurses-5.3/ncurses/base/tries.c Sat Dec 15 18:50:40 2001
++++ ncurses-5.3.20030906.orig/ncurses/base/tries.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2001,2003 Free 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,15 +39,14 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: tries.c,v 1.15 2001/12/16 00:50:40 tom Exp $")
++MODULE_ID("$Id: tries.c,v 1.19 2003/05/17 23:11:24 tom Exp $")
+
+ /*
+ * Expand a keycode into the string that it corresponds to, returning null if
+ * no match was found, otherwise allocating a string of the result.
+ */
+ NCURSES_EXPORT(char *)
+-_nc_expand_try
+-(struct tries *tree, unsigned short code, int *count, size_t len)
++_nc_expand_try(struct tries *tree, unsigned short code, int *count, size_t len)
+ {
+ struct tries *ptr = tree;
+ char *result = 0;
+@@ -84,8 +83,7 @@
+ * true if the code was found/removed.
+ */
+ NCURSES_EXPORT(int)
+-_nc_remove_key
+-(struct tries **tree, unsigned short code)
++_nc_remove_key(struct tries **tree, unsigned short code)
+ {
+ T((T_CALLED("_nc_remove_key(%p,%d)"), tree, code));
+
+@@ -117,7 +115,7 @@
+ * true if the string was found/removed.
+ */
+ NCURSES_EXPORT(int)
+-_nc_remove_string(struct tries **tree, char *string)
++_nc_remove_string(struct tries **tree, const char *string)
+ {
+ T((T_CALLED("_nc_remove_string(%p,%s)"), tree, _nc_visbuf(string)));
+
+@@ -125,18 +123,17 @@
+ returnCode(FALSE);
+
+ while (*tree != 0) {
+- if ((unsigned char) (*tree)->ch == (unsigned char) *string) {
++ if (UChar((*tree)->ch) == UChar(*string)) {
+ if (string[1] != 0)
+ returnCode(_nc_remove_string(&(*tree)->child, string + 1));
+- if ((*tree)->child) {
+- /* don't cut the whole sub-tree */
+- (*tree)->value = 0;
+- } else {
++ if ((*tree)->child == 0) {
+ struct tries *to_free = *tree;
+ *tree = (*tree)->sibling;
+ free(to_free);
++ returnCode(TRUE);
++ } else {
++ returnCode(FALSE);
+ }
+- returnCode(TRUE);
+ }
+ tree = &(*tree)->sibling;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/base/vsscanf.c ncurses-5.3.20030906.orig/ncurses/base/vsscanf.c
+--- ncurses-5.3/ncurses/base/vsscanf.c Sat Sep 7 12:27:56 2002
++++ ncurses-5.3.20030906.orig/ncurses/base/vsscanf.c Sun Jul 20 14:02:08 2003
+@@ -38,7 +38,7 @@
+
+ #if !HAVE_VSSCANF
+
+-MODULE_ID("$Id: vsscanf.c,v 1.16 2002/09/07 17:27:56 tom Exp $")
++MODULE_ID("$Id: vsscanf.c,v 1.17 2003/05/24 21:10:28 tom Exp $")
+
+ #if !(HAVE_VFSCANF || HAVE__DOSCAN)
+
+@@ -230,7 +230,7 @@
+ /* find a chunk */
+ state = sUnknown;
+ chunk = cUnknown;
+- other = cUnknown;
++ other = oUnknown;
+ pointer = 0;
+ for (n = 0; format[n] != 0 && state != sFinal; ++n) {
+ my_fmt[n] = format[n];
+diff -urNd -urNd ncurses-5.3/ncurses/curses.priv.h ncurses-5.3.20030906.orig/ncurses/curses.priv.h
+--- ncurses-5.3/ncurses/curses.priv.h Sat Oct 12 10:49:10 2002
++++ ncurses-5.3.20030906.orig/ncurses/curses.priv.h Fri Sep 12 16:42:24 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.228 2002/10/12 15:49:10 tom Exp $
++ * $Id: curses.priv.h,v 1.252 2003/08/23 21:38:49 tom Exp $
+ *
+ * curses.priv.h
+ *
+@@ -130,7 +130,9 @@
+
+ /* EMX mouse support */
+ #ifdef __EMX__
+-#define USE_EMX_MOUSE
++#define USE_EMX_MOUSE 1
++#else
++#define USE_EMX_MOUSE 0
+ #endif
+
+ #define DEFAULT_MAXCLICK 166
+@@ -259,21 +261,32 @@
+
+ struct ldat
+ {
+- NCURSES_CH_T *text; /* text of the line */
+- NCURSES_SIZE_T firstchar; /* first changed character in the line */
+- NCURSES_SIZE_T lastchar; /* last changed character in the line */
+- NCURSES_SIZE_T oldindex; /* index of the line at last update */
++ NCURSES_CH_T *text; /* text of the line */
++ NCURSES_SIZE_T firstchar; /* first changed character in the line */
++ NCURSES_SIZE_T lastchar; /* last changed character in the line */
++ NCURSES_SIZE_T oldindex; /* index of the line at last update */
+ };
+
++typedef enum {
++ M_XTERM = -1 /* use xterm's mouse tracking? */
++ ,M_NONE = 0 /* no mouse device */
++#if USE_GPM_SUPPORT
++ ,M_GPM /* use GPM */
++#endif
++#if USE_SYSMOUSE
++ ,M_SYSMOUSE /* FreeBSD sysmouse on console */
++#endif
++} MouseType;
++
+ /*
+ * Structure for soft labels.
+ */
+
+ typedef struct
+ {
+- char *text; /* text for the label */
++ char *ent_text; /* text for the label */
+ char *form_text; /* formatted text (left/center/...) */
+- int x; /* x coordinate of this field */
++ int ent_x; /* x coordinate of this field */
+ char dirty; /* this label has changed */
+ char visible; /* field is visible */
+ } slk_ent;
+@@ -283,11 +296,10 @@
+ char hidden; /* soft labels are hidden */
+ WINDOW *win;
+ slk_ent *ent;
+- char* buffer; /* buffer for labels */
+- short maxlab; /* number of available labels */
+- short labcnt; /* number of allocated labels */
+- short maxlen; /* length of labels */
+- chtype attr; /* soft label attribute */
++ short maxlab; /* number of available labels */
++ short labcnt; /* number of allocated labels */
++ short maxlen; /* length of labels */
++ chtype attr; /* soft label attribute */
+ } SLK;
+
+ typedef struct {
+@@ -308,7 +320,7 @@
+ char *_setbuf; /* buffered I/O for output */
+ int _buffered; /* setvbuf uses _setbuf data */
+ int _checkfd; /* filedesc for typeahead check */
+- struct term *_term; /* terminal type information */
++ TERMINAL *_term; /* terminal type information */
+ short _lines; /* screen lines */
+ short _columns; /* screen columns */
+
+@@ -326,6 +338,7 @@
+ bool _tried; /* keypad mode was initialized */
+ bool _keypad_on; /* keypad mode is currently on */
+
++ bool _called_wgetch; /* check for recursion in wgetch() */
+ int _fifo[FIFO_SIZE]; /* input push-back buffer */
+ short _fifohead, /* head of fifo queue */
+ _fifotail, /* tail of fifo queue */
+@@ -339,6 +352,7 @@
+ int _cursor; /* visibility of the cursor */
+ int _cursrow; /* physical cursor row */
+ int _curscol; /* physical cursor column */
++ bool _notty; /* true if we cannot switch non-tty */
+ int _nl; /* True if NL -> CR/NL is on */
+ int _raw; /* True if in raw mode */
+ int _cbreak; /* 1 if in cbreak mode */
+@@ -405,7 +419,7 @@
+ #endif
+ chtype _xmc_suppress; /* attributes to suppress if xmc */
+ chtype _xmc_triggers; /* attributes to process if xmc */
+- chtype _acs_map[ACS_LEN];
++ chtype _acs_map[ACS_LEN]; /* the real alternate-charset map */
+
+ /* used in lib_vidattr.c */
+ bool _use_rmso; /* true if we may use 'rmso' */
+@@ -426,6 +440,7 @@
+ /*
+ * These are the data that support the mouse interface.
+ */
++ MouseType _mouse_type;
+ int _maxclick;
+ bool (*_mouse_event) (SCREEN *);
+ bool (*_mouse_inline)(SCREEN *);
+@@ -433,6 +448,16 @@
+ void (*_mouse_resume)(SCREEN *);
+ void (*_mouse_wrap) (SCREEN *);
+ int _mouse_fd; /* file-descriptor, if any */
++ NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */
++#if USE_SYSMOUSE
++ MEVENT _sysmouse_fifo[FIFO_SIZE];
++ int _sysmouse_head;
++ int _sysmouse_tail;
++ int _sysmouse_char_width; /* character width */
++ int _sysmouse_char_height; /* character height */
++ int _sysmouse_old_buttons;
++ int _sysmouse_new_buttons;
++#endif
+
+ /*
+ * This supports automatic resizing
+@@ -461,6 +486,14 @@
+ HASHMAP *hashtab;
+ int hashtab_len;
+
++ /* recent versions of 'screen' have partially-working support for
++ * UTF-8, but do not permit ACS at the same time (see tty_update.c).
++ */
++#if USE_WIDEC_SUPPORT
++ bool _posix_locale;
++ bool _screen_acs_fix;
++#endif
++
+ bool _cleanup; /* cleanup after int/quit signal */
+ int (*_outch)(int); /* output handler if not putc */
+ };
+@@ -471,21 +504,19 @@
+ #include <nomacros.h>
+ #endif
+
+-/*
+- * The margins are used in resizeterm() to retain the original layout after
+- * resizing.
+- */
+ WINDOWLIST {
++ WINDOW win; /* first, so WINDOW_EXT() works */
+ WINDOWLIST *next;
+-#if HAVE_RESIZETERM
+- int l_margin;
+- int r_margin;
+- int t_margin;
+- int b_margin;
++#ifdef _XOPEN_SOURCE_EXTENDED
++ char addch_work[(MB_LEN_MAX * 9) + 1];
++ int addch_used;
++ int addch_x;
++ int addch_y;
+ #endif
+- WINDOW win;
+ };
+
++#define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field)
++
+ /* The terminfo source is assumed to be 7-bit ASCII */
+ #define is7bits(c) ((unsigned)(c) < 128)
+
+@@ -539,18 +570,29 @@
+ #define O_BINARY 0
+ #endif
+
++#ifdef TRACE
++#define TRACE_OUTCHARS(n) _nc_outchars += (n);
++#else
++#define TRACE_OUTCHARS(n) /* nothing */
++#endif
++
+ #define UChar(c) ((unsigned char)(c))
+ #define ChCharOf(c) ((c) & (chtype)A_CHARTEXT)
+ #define ChAttrOf(c) ((c) & (chtype)A_ATTRIBUTES)
+
++#ifndef MB_LEN_MAX
++#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
++#endif
++
+ #if USE_WIDEC_SUPPORT /* { */
++#define NulChar 0,0,0,0 /* FIXME: see CCHARW_MAX */
+ #define CharOf(c) ((c).chars[0])
+ #define AttrOf(c) ((c).attr)
+ #define AddAttr(c,a) (c).attr |= a
+ #define RemAttr(c,a) (c).attr &= ~(a)
+ #define SetAttr(c,a) (c).attr = a
+-#define NewChar(ch) { ChAttrOf(ch), { ChCharOf(ch) } }
+-#define NewChar2(c,a) { a, { c } }
++#define NewChar(ch) { ChAttrOf(ch), { ChCharOf(ch), NulChar } }
++#define NewChar2(c,a) { a, { c, NulChar } }
+ #define CharEq(a,b) (!memcmp(&a, &b, sizeof(a)))
+ #define SetChar(ch,c,a) do { \
+ NCURSES_CH_T *_cp = &ch; \
+@@ -562,9 +604,14 @@
+ #define CARG_CH_T const NCURSES_CH_T *
+ #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 memset (&PUT_st, '\0', sizeof (PUT_st)); \
++ PUTC_i = 0
+ #define PUTC(ch,b) do { if(!isnac(ch)) { \
+- memset (&PUT_st, '\0', sizeof (PUT_st)); \
+- PUTC_i = 0; \
++ if (Charable(ch)) { \
++ fputc(CharOf(ch), b); \
++ TRACE_OUTCHARS(1); \
++ } else { \
++ PUTC_INIT; \
+ do { \
+ PUTC_ch = PUTC_i < CCHARW_MAX ? \
+ (ch).chars[PUTC_i] : L'\0'; \
+@@ -577,7 +624,8 @@
+ fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b); \
+ ++PUTC_i; \
+ } while (PUTC_ch != L'\0'); \
+- } } while (0)
++ TRACE_OUTCHARS(PUTC_i); \
++ } } } while (0)
+
+ #define BLANK { WA_NORMAL, ' ' }
+ #define ISBLANK(ch) ((ch).chars[0] == L' ' && (ch).chars[1] == L'\0')
+@@ -585,9 +633,10 @@
+ #define WA_NAC 1
+ #define isnac(ch) (AttrOf(ch) & WA_NAC)
+ #define if_WIDEC(code) code
+-#define Charable(ch) (!isnac(ch) && \
+- (ch).chars[1] == L'\0' && \
+- (wctob(CharOf(ch)) == (char)CharOf(ch)))
++#define Charable(ch) ((SP != 0 && SP->_posix_locale) \
++ || (!isnac(ch) && \
++ (ch).chars[1] == L'\0' && \
++ _nc_is_charable(CharOf(ch))))
+
+ #define L(ch) L ## ch
+ #else /* }{ */
+@@ -743,7 +792,7 @@
+
+ #define ALL_BUT_COLOR ((chtype)~(A_COLOR))
+ #define IGNORE_COLOR_OFF FALSE
+-#define NONBLANK_ATTR (A_BOLD|A_DIM|A_BLINK)
++#define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK)
+ #define XMC_CHANGES(c) ((c) & SP->_xmc_suppress)
+
+ #define toggle_attr_on(S,at) {\
+@@ -781,7 +830,7 @@
+ : ((enter_insert_mode && exit_insert_mode) \
+ ? SP->_smir_cost + SP->_rmir_cost + (SP->_ip_cost * count) \
+ : ((insert_character != 0) \
+- ? (SP->_ich1_cost * count) \
++ ? ((SP->_ich1_cost + SP->_ip_cost) * count) \
+ : INFINITY)))
+
+ #if USE_XMC_SUPPORT
+@@ -847,6 +896,13 @@
+ #define getcwd(buf,len) getwd(buf)
+ #endif
+
++/* charable.c */
++#if USE_WIDEC_SUPPORT
++extern NCURSES_EXPORT(bool) _nc_is_charable(wchar_t);
++extern NCURSES_EXPORT(int) _nc_to_char(wint_t);
++extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int);
++#endif
++
+ /* doupdate.c */
+ #if USE_XMC_SUPPORT
+ extern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t);
+@@ -872,6 +928,9 @@
+ /* lib_getch.c */
+ extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, unsigned long *, int EVENTLIST_2nd(_nc_eventlist *));
+
++/* lib_insch.c */
++extern NCURSES_EXPORT(void) _nc_insert_ch(WINDOW *, chtype);
++
+ /* lib_mvcur.c */
+ #define INFINITY 1000000 /* cost: too high to use */
+
+@@ -890,6 +949,12 @@
+
+ /* lib_mvcur.c */
+ #define INFINITY 1000000 /* cost: too high to use */
++#define BAUDBYTE 9 /* 9 = 7 bits + 1 parity + 1 stop */
++
++/* lib_setup.c */
++extern NCURSES_EXPORT(char *) _nc_get_locale(void);
++extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
++extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void);
+
+ /* lib_wacs.c */
+ #if USE_WIDEC_SUPPORT
+@@ -897,9 +962,10 @@
+ #endif
+
+ typedef struct {
+- char *s_head;
+- char *s_tail;
+- size_t s_size;
++ char *s_head; /* beginning of the string (may be null) */
++ char *s_tail; /* end of the string (may be null) */
++ size_t s_size; /* current remaining size available */
++ size_t s_init; /* total size available */
+ } string_desc;
+
+ /* strings.c */
+@@ -931,14 +997,15 @@
+ extern NCURSES_EXPORT(void) _nc_add_to_try (struct tries **, const char *, unsigned short);
+ extern NCURSES_EXPORT(char *) _nc_expand_try (struct tries *, unsigned short, int *, size_t);
+ extern NCURSES_EXPORT(int) _nc_remove_key (struct tries **, unsigned short);
+-extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, char *);
++extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, const char *);
+
+ /* elsewhere ... */
++extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
+ extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
+ extern NCURSES_EXPORT(char *) _nc_home_terminfo (void);
+ extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
+-extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
+-extern NCURSES_EXPORT(int) _nc_access (const char *, int);
++extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *);
++extern NCURSES_EXPORT(int) _nc_access (const char *, int);
+ extern NCURSES_EXPORT(int) _nc_baudrate (int);
+ extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);
+ extern NCURSES_EXPORT(int) _nc_getenv_num (const char *);
+diff -urNd -urNd ncurses-5.3/ncurses/llib-lncurses ncurses-5.3.20030906.orig/ncurses/llib-lncurses
+--- ncurses-5.3/ncurses/llib-lncurses Sat Aug 31 16:34:07 2002
++++ ncurses-5.3.20030906.orig/ncurses/llib-lncurses Fri Sep 12 16:42:59 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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-2001,2002 *
++ * Author: Thomas E. Dickey 1996-2002,2003 *
+ ****************************************************************************/
+ /* LINTLIBRARY */
+
+@@ -59,8 +59,8 @@
+
+ #undef _nc_scroll_oldhash
+ void _nc_scroll_oldhash(
+- int n,
+- int top,
++ int n,
++ int top,
+ int bot)
+ { /* void */ }
+
+@@ -70,25 +70,25 @@
+
+ #undef _nc_render
+ chtype _nc_render(
+- WINDOW *win,
++ WINDOW *win,
+ chtype ch)
+ { return(*(chtype *)0); }
+
+ #undef _nc_waddch_nosync
+ int _nc_waddch_nosync(
+- WINDOW *win,
++ WINDOW *win,
+ const chtype c)
+ { return(*(int *)0); }
+
+ #undef waddch
+ int waddch(
+- WINDOW *win,
++ WINDOW *win,
+ const chtype ch)
+ { return(*(int *)0); }
+
+ #undef wechochar
+ int wechochar(
+- WINDOW *win,
++ WINDOW *win,
+ const chtype ch)
+ { return(*(int *)0); }
+
+@@ -96,15 +96,15 @@
+
+ #undef waddnstr
+ int waddnstr(
+- WINDOW *win,
+- const char *astr,
++ WINDOW *win,
++ const char *astr,
+ int n)
+ { return(*(int *)0); }
+
+ #undef waddchnstr
+ int waddchnstr(
+- WINDOW *win,
+- const chtype *astr,
++ WINDOW *win,
++ const chtype *astr,
+ int n)
+ { return(*(int *)0); }
+
+@@ -118,13 +118,13 @@
+
+ #undef wbkgdset
+ void wbkgdset(
+- WINDOW *win,
++ WINDOW *win,
+ chtype ch)
+ { /* void */ }
+
+ #undef wbkgd
+ int wbkgd(
+- WINDOW *win,
++ WINDOW *win,
+ chtype ch)
+ { return(*(int *)0); }
+
+@@ -132,14 +132,14 @@
+
+ #undef wborder
+ int wborder(
+- WINDOW *win,
+- chtype ls,
+- chtype rs,
+- chtype ts,
+- chtype bs,
+- chtype tl,
+- chtype tr,
+- chtype bl,
++ WINDOW *win,
++ chtype ls,
++ chtype rs,
++ chtype ts,
++ chtype bs,
++ chtype tl,
++ chtype tr,
++ chtype bl,
+ chtype br)
+ { return(*(int *)0); }
+
+@@ -147,10 +147,10 @@
+
+ #undef wchgat
+ int wchgat(
+- WINDOW *win,
+- int n,
+- attr_t attr,
+- short color,
++ WINDOW *win,
++ int n,
++ attr_t attr,
++ short color,
+ const void *opts)
+ { return(*(int *)0); }
+
+@@ -165,7 +165,7 @@
+
+ #undef clearok
+ int clearok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -192,22 +192,26 @@
+ #undef COLORS
+ int COLORS;
+
++#undef _nc_reset_colors
++NCURSES_BOOL _nc_reset_colors(void)
++ { return(*(NCURSES_BOOL *)0); }
++
+ #undef start_color
+ int start_color(void)
+ { return(*(int *)0); }
+
+ #undef init_pair
+ int init_pair(
+- short pair,
+- short f,
++ short pair,
++ short f,
+ short b)
+ { return(*(int *)0); }
+
+ #undef init_color
+ int init_color(
+- short color,
+- short r,
+- short g,
++ short color,
++ short r,
++ short g,
+ short b)
+ { return(*(int *)0); }
+
+@@ -221,24 +225,24 @@
+
+ #undef color_content
+ int color_content(
+- short color,
+- short *r,
+- short *g,
++ short color,
++ short *r,
++ short *g,
+ short *b)
+ { return(*(int *)0); }
+
+ #undef pair_content
+ int pair_content(
+- short pair,
+- short *f,
++ short pair,
++ short *f,
+ short *b)
+ { return(*(int *)0); }
+
+ #undef _nc_do_color
+ void _nc_do_color(
+- int old_pair,
+- int pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ NCURSES_BOOL reverse,
+ int (*outc)(
+ int p1))
+ { /* void */ }
+@@ -247,8 +251,8 @@
+
+ #undef wcolor_set
+ int wcolor_set(
+- WINDOW *win,
+- short color_pair_number,
++ WINDOW *win,
++ short color_pair_number,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -304,7 +308,7 @@
+
+ #undef addchnstr
+ int addchnstr(
+- const chtype *a1,
++ const chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -315,7 +319,7 @@
+
+ #undef addnstr
+ int addnstr(
+- const char *a1,
++ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -341,27 +345,27 @@
+
+ #undef attr_get
+ int attr_get(
+- attr_t *a1,
+- short *a2,
++ attr_t *a1,
++ short *a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_off
+ int attr_off(
+- attr_t a1,
++ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_on
+ int attr_on(
+- attr_t a1,
++ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_set
+ int attr_set(
+- attr_t a1,
+- short a2,
++ attr_t a1,
++ short a2,
+ void *z)
+ { return(*(int *)0); }
+
+@@ -377,28 +381,28 @@
+
+ #undef border
+ int border(
+- chtype a1,
+- chtype a2,
+- chtype a3,
+- chtype a4,
+- chtype a5,
+- chtype a6,
+- chtype a7,
++ chtype a1,
++ chtype a2,
++ chtype a3,
++ chtype a4,
++ chtype a5,
++ chtype a6,
++ chtype a7,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef box
+ int box(
+- WINDOW *a1,
+- chtype a2,
++ WINDOW *a1,
++ chtype a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef chgat
+ int chgat(
+- int a1,
+- attr_t a2,
+- short a3,
++ int a1,
++ attr_t a2,
++ short a3,
+ const void *z)
+ { return(*(int *)0); }
+
+@@ -416,7 +420,7 @@
+
+ #undef color_set
+ int color_set(
+- short a1,
++ short a1,
+ void *z)
+ { return(*(int *)0); }
+
+@@ -453,7 +457,7 @@
+
+ #undef getnstr
+ int getnstr(
+- char *a1,
++ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -464,7 +468,7 @@
+
+ #undef hline
+ int hline(
+- chtype a1,
++ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -474,7 +478,7 @@
+
+ #undef inchnstr
+ int inchnstr(
+- chtype *a1,
++ chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -485,7 +489,7 @@
+
+ #undef innstr
+ int innstr(
+- char *a1,
++ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -505,7 +509,7 @@
+
+ #undef insnstr
+ int insnstr(
+- const char *a1,
++ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -521,323 +525,323 @@
+
+ #undef move
+ int move(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddch
+ int mvaddch(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvaddchnstr
+ int mvaddchnstr(
+- int a1,
+- int a2,
+- const chtype *a3,
++ int a1,
++ int a2,
++ const chtype *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddchstr
+ int mvaddchstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnstr
+ int mvaddnstr(
+- int a1,
+- int a2,
+- const char *a3,
++ int a1,
++ int a2,
++ const char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddstr
+ int mvaddstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvchgat
+ int mvchgat(
+- int a1,
+- int a2,
+- int a3,
+- attr_t a4,
+- short a5,
++ int a1,
++ int a2,
++ int a3,
++ attr_t a4,
++ short a5,
+ const void *z)
+ { return(*(int *)0); }
+
+ #undef mvdelch
+ int mvdelch(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetch
+ int mvgetch(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetnstr
+ int mvgetnstr(
+- int a1,
+- int a2,
+- char *a3,
++ int a1,
++ int a2,
++ char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetstr
+ int mvgetstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvhline
+ int mvhline(
+- int a1,
+- int a2,
+- chtype a3,
++ int a1,
++ int a2,
++ chtype a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinch
+ chtype mvinch(
+- int a1,
++ int a1,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvinchnstr
+ int mvinchnstr(
+- int a1,
+- int a2,
+- chtype *a3,
++ int a1,
++ int a2,
++ chtype *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinchstr
+ int mvinchstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvinnstr
+ int mvinnstr(
+- int a1,
+- int a2,
+- char *a3,
++ int a1,
++ int a2,
++ char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinsch
+ int mvinsch(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvinsnstr
+ int mvinsnstr(
+- int a1,
+- int a2,
+- const char *a3,
++ int a1,
++ int a2,
++ const char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinsstr
+ int mvinsstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvinstr
+ int mvinstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvvline
+ int mvvline(
+- int a1,
+- int a2,
+- chtype a3,
++ int a1,
++ int a2,
++ chtype a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwaddch
+ int mvwaddch(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvwaddchnstr
+ int mvwaddchnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const chtype *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const chtype *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwaddchstr
+ int mvwaddchstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvwaddnstr
+ int mvwaddnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwaddstr
+ int mvwaddstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvwchgat
+ int mvwchgat(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- int a4,
+- attr_t a5,
+- short a6,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ int a4,
++ attr_t a5,
++ short a6,
+ const void *z)
+ { return(*(int *)0); }
+
+ #undef mvwdelch
+ int mvwdelch(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetch
+ int mvwgetch(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetnstr
+ int mvwgetnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetstr
+ int mvwgetstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvwhline
+ int mvwhline(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- chtype a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ chtype a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinch
+ chtype mvwinch(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvwinchnstr
+ int mvwinchnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- chtype *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ chtype *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinchstr
+ int mvwinchstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvwinnstr
+ int mvwinnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinsch
+ int mvwinsch(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvwinsnstr
+ int mvwinsnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinsstr
+ int mvwinsstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvwinstr
+ int mvwinstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvwvline
+ int mvwvline(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- chtype a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ chtype a4,
+ int z)
+ { return(*(int *)0); }
+
+@@ -867,7 +871,7 @@
+
+ #undef setscrreg
+ int setscrreg(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -886,8 +890,8 @@
+
+ #undef touchline
+ int touchline(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(int *)0); }
+
+@@ -903,67 +907,67 @@
+
+ #undef vline
+ int vline(
+- chtype a1,
++ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef vw_printw
+ int vw_printw(
+- WINDOW *a1,
+- char *a2,
++ WINDOW *a1,
++ const char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef vw_scanw
+ int vw_scanw(
+- WINDOW *a1,
+- char *a2,
++ WINDOW *a1,
++ char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef waddchstr
+ int waddchstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef waddstr
+ int waddstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef wattron
+ int wattron(
+- WINDOW *a1,
++ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattroff
+ int wattroff(
+- WINDOW *a1,
++ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattrset
+ int wattrset(
+- WINDOW *a1,
++ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattr_get
+ int wattr_get(
+- WINDOW *a1,
+- attr_t *a2,
+- short *a3,
++ WINDOW *a1,
++ attr_t *a2,
++ short *a3,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef wattr_set
+ int wattr_set(
+- WINDOW *a1,
+- attr_t a2,
+- short a3,
++ WINDOW *a1,
++ attr_t a2,
++ short a3,
+ void *z)
+ { return(*(int *)0); }
+
+@@ -974,13 +978,13 @@
+
+ #undef wgetstr
+ int wgetstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef winchstr
+ int winchstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ chtype *z)
+ { return(*(int *)0); }
+
+@@ -991,13 +995,13 @@
+
+ #undef winsstr
+ int winsstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef winstr
+ int winstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+@@ -1013,8 +1017,8 @@
+
+ #undef mouse_trafo
+ NCURSES_BOOL mouse_trafo(
+- int *a1,
+- int *a2,
++ int *a1,
++ int *a2,
+ NCURSES_BOOL z)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -1027,8 +1031,8 @@
+
+ #undef _nc_wgetch
+ int _nc_wgetch(
+- WINDOW *win,
+- unsigned long *result,
++ WINDOW *win,
++ unsigned long *result,
+ int use_meta)
+ { return(*(int *)0); }
+
+@@ -1041,8 +1045,8 @@
+
+ #undef wgetnstr
+ int wgetnstr(
+- WINDOW *win,
+- char *str,
++ WINDOW *win,
++ char *str,
+ int maxlen)
+ { return(*(int *)0); }
+
+@@ -1050,8 +1054,8 @@
+
+ #undef whline
+ int whline(
+- WINDOW *win,
+- chtype ch,
++ WINDOW *win,
++ chtype ch,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1059,7 +1063,7 @@
+
+ #undef immedok
+ void immedok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { /* void */ }
+
+@@ -1067,8 +1071,8 @@
+
+ #undef winchnstr
+ int winchnstr(
+- WINDOW *win,
+- chtype *str,
++ WINDOW *win,
++ chtype *str,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1080,26 +1084,30 @@
+
+ /* ./base/lib_insch.c */
+
++#undef _nc_insert_ch
++void _nc_insert_ch(
++ WINDOW *win,
++ chtype ch)
++ { /* void */ }
++
+ #undef winsch
+ int winsch(
+- WINDOW *win,
++ WINDOW *win,
+ chtype c)
+ { return(*(int *)0); }
+
+-/* ./base/lib_insdel.c */
+-
+-#undef winsdelln
+-int winsdelln(
+- WINDOW *win,
++#undef winsnstr
++int winsnstr(
++ WINDOW *win,
++ const char *s,
+ int n)
+ { return(*(int *)0); }
+
+-/* ./base/lib_insstr.c */
++/* ./base/lib_insdel.c */
+
+-#undef winsnstr
+-int winsnstr(
+- WINDOW *win,
+- const char *s,
++#undef winsdelln
++int winsdelln(
++ WINDOW *win,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1107,8 +1115,8 @@
+
+ #undef winnstr
+ int winnstr(
+- WINDOW *win,
+- char *str,
++ WINDOW *win,
++ char *str,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1122,7 +1130,7 @@
+
+ #undef leaveok
+ int leaveok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -1140,14 +1148,14 @@
+
+ #undef mousemask
+ mmask_t mousemask(
+- mmask_t newmask,
++ mmask_t newmask,
+ mmask_t *oldmask)
+ { return(*(mmask_t *)0); }
+
+ #undef wenclose
+ NCURSES_BOOL wenclose(
+- const WINDOW *win,
+- int y,
++ const WINDOW *win,
++ int y,
+ int x)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -1162,9 +1170,9 @@
+
+ #undef wmouse_trafo
+ NCURSES_BOOL wmouse_trafo(
+- const WINDOW *win,
+- int *pY,
+- int *pX,
++ const WINDOW *win,
++ int *pY,
++ int *pX,
+ NCURSES_BOOL to_screen)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -1172,8 +1180,8 @@
+
+ #undef wmove
+ int wmove(
+- WINDOW *win,
+- int y,
++ WINDOW *win,
++ int y,
+ int x)
+ { return(*(int *)0); }
+
+@@ -1181,7 +1189,7 @@
+
+ #undef _nc_msec_cost
+ int _nc_msec_cost(
+- const char *const cap,
++ const char *const cap,
+ int affcnt)
+ { return(*(int *)0); }
+
+@@ -1199,9 +1207,9 @@
+
+ #undef mvcur
+ int mvcur(
+- int yold,
+- int xold,
+- int ynew,
++ int yold,
++ int xold,
++ int ynew,
+ int xnew)
+ { return(*(int *)0); }
+
+@@ -1212,8 +1220,8 @@
+
+ #undef mvwin
+ int mvwin(
+- WINDOW *win,
+- int by,
++ WINDOW *win,
++ int by,
+ int bx)
+ { return(*(int *)0); }
+
+@@ -1225,8 +1233,8 @@
+
+ #undef newterm
+ SCREEN *newterm(
+- char *name,
+- FILE *ofp,
++ char *name,
++ FILE *ofp,
+ FILE *ifp)
+ { return(*(SCREEN **)0); }
+
+@@ -1239,36 +1247,36 @@
+
+ #undef newwin
+ WINDOW *newwin(
+- int num_lines,
+- int num_columns,
+- int begy,
++ int num_lines,
++ int num_columns,
++ int begy,
+ int begx)
+ { return(*(WINDOW **)0); }
+
+ #undef derwin
+ WINDOW *derwin(
+- WINDOW *orig,
+- int num_lines,
+- int num_columns,
+- int begy,
++ WINDOW *orig,
++ int num_lines,
++ int num_columns,
++ int begy,
+ int begx)
+ { return(*(WINDOW **)0); }
+
+ #undef subwin
+ WINDOW *subwin(
+- WINDOW *w,
+- int l,
+- int c,
+- int y,
++ WINDOW *w,
++ int l,
++ int c,
++ int y,
+ int x)
+ { return(*(WINDOW **)0); }
+
+ #undef _nc_makenew
+ WINDOW *_nc_makenew(
+- int num_lines,
+- int num_columns,
+- int begy,
+- int begx,
++ int num_lines,
++ int num_columns,
++ int begy,
++ int begx,
+ int flags)
+ { return(*(WINDOW **)0); }
+
+@@ -1286,26 +1294,26 @@
+
+ #undef overlay
+ int overlay(
+- const WINDOW *win1,
++ const WINDOW *win1,
+ WINDOW *win2)
+ { return(*(int *)0); }
+
+ #undef overwrite
+ int overwrite(
+- const WINDOW *win1,
++ const WINDOW *win1,
+ WINDOW *win2)
+ { return(*(int *)0); }
+
+ #undef copywin
+ int copywin(
+- const WINDOW *src,
+- WINDOW *dst,
+- int sminrow,
+- int smincol,
+- int dminrow,
+- int dmincol,
+- int dmaxrow,
+- int dmaxcol,
++ const WINDOW *src,
++ WINDOW *dst,
++ int sminrow,
++ int smincol,
++ int dminrow,
++ int dmincol,
++ int dmaxrow,
++ int dmaxcol,
+ int over)
+ { return(*(int *)0); }
+
+@@ -1313,44 +1321,44 @@
+
+ #undef newpad
+ WINDOW *newpad(
+- int l,
++ int l,
+ int c)
+ { return(*(WINDOW **)0); }
+
+ #undef subpad
+ WINDOW *subpad(
+- WINDOW *orig,
+- int l,
+- int c,
+- int begy,
++ WINDOW *orig,
++ int l,
++ int c,
++ int begy,
+ int begx)
+ { return(*(WINDOW **)0); }
+
+ #undef prefresh
+ int prefresh(
+- WINDOW *win,
+- int pminrow,
+- int pmincol,
+- int sminrow,
+- int smincol,
+- int smaxrow,
++ WINDOW *win,
++ int pminrow,
++ int pmincol,
++ int sminrow,
++ int smincol,
++ int smaxrow,
+ int smaxcol)
+ { return(*(int *)0); }
+
+ #undef pnoutrefresh
+ int pnoutrefresh(
+- WINDOW *win,
+- int pminrow,
+- int pmincol,
+- int sminrow,
+- int smincol,
+- int smaxrow,
++ WINDOW *win,
++ int pminrow,
++ int pmincol,
++ int sminrow,
++ int smincol,
++ int smaxrow,
+ int smaxcol)
+ { return(*(int *)0); }
+
+ #undef pechochar
+ int pechochar(
+- WINDOW *pad,
++ WINDOW *pad,
+ const chtype ch)
+ { return(*(int *)0); }
+
+@@ -1358,38 +1366,38 @@
+
+ #undef printw
+ int printw(
+- char *fmt,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef wprintw
+ int wprintw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvprintw
+ int mvprintw(
+- int y,
+- int x,
+- char *fmt,
++ int y,
++ int x,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvwprintw
+ int mvwprintw(
+- WINDOW *win,
+- int y,
+- int x,
+- char *fmt,
++ WINDOW *win,
++ int y,
++ int x,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef vwprintw
+ int vwprintw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ const char *fmt,
+ va_list argp)
+ { return(*(int *)0); }
+
+@@ -1397,8 +1405,8 @@
+
+ #undef wredrawln
+ int wredrawln(
+- WINDOW *win,
+- int beg,
++ WINDOW *win,
++ int beg,
+ int num)
+ { return(*(int *)0); }
+
+@@ -1418,8 +1426,8 @@
+
+ #undef restartterm
+ int restartterm(
+- char *termp,
+- int filenum,
++ char *termp,
++ int filenum,
+ int *errret)
+ { return(*(int *)0); }
+
+@@ -1427,38 +1435,38 @@
+
+ #undef vwscanw
+ int vwscanw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ char *fmt,
+ va_list argp)
+ { return(*(int *)0); }
+
+ #undef scanw
+ int scanw(
+- char *fmt,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef wscanw
+ int wscanw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvscanw
+ int mvscanw(
+- int y,
+- int x,
+- char *fmt,
++ int y,
++ int x,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvwscanw
+ int mvwscanw(
+- WINDOW *win,
+- int y,
+- int x,
+- char *fmt,
++ WINDOW *win,
++ int y,
++ int x,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+@@ -1471,7 +1479,7 @@
+
+ #undef putwin
+ int putwin(
+- WINDOW *win,
++ WINDOW *win,
+ FILE *filep)
+ { return(*(int *)0); }
+
+@@ -1499,16 +1507,16 @@
+
+ #undef _nc_scroll_window
+ void _nc_scroll_window(
+- WINDOW *win,
+- int const n,
+- short const top,
+- short const bottom,
++ WINDOW *win,
++ int const n,
++ short const top,
++ short const bottom,
+ chtype blank)
+ { /* void */ }
+
+ #undef wscrl
+ int wscrl(
+- WINDOW *win,
++ WINDOW *win,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1516,7 +1524,7 @@
+
+ #undef scrollok
+ int scrollok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -1524,8 +1532,8 @@
+
+ #undef wsetscrreg
+ int wsetscrreg(
+- WINDOW *win,
+- int top,
++ WINDOW *win,
++ int top,
+ int bottom)
+ { return(*(int *)0); }
+
+@@ -1543,24 +1551,24 @@
+
+ #undef _nc_setupscreen
+ int _nc_setupscreen(
+- short slines,
+- short const scolumns,
++ short slines,
++ short const scolumns,
+ FILE *output)
+ { return(*(int *)0); }
+
+ #undef _nc_ripoffline
+ int _nc_ripoffline(
+- int line,
++ int line,
+ int (*init)(
+- WINDOW *p1,
++ WINDOW *p1,
+ int p2))
+ { return(*(int *)0); }
+
+ #undef ripoffline
+ int ripoffline(
+- int line,
++ int line,
+ int (*init)(
+- WINDOW *p1,
++ WINDOW *p1,
+ int p2))
+ { return(*(int *)0); }
+
+@@ -1571,7 +1579,7 @@
+
+ #undef _nc_slk_initialize
+ int _nc_slk_initialize(
+- WINDOW *stwin,
++ WINDOW *stwin,
+ int cols)
+ { return(*(int *)0); }
+
+@@ -1583,8 +1591,8 @@
+
+ #undef slk_attr_set
+ int slk_attr_set(
+- const attr_t attr,
+- short color_pair_number,
++ const attr_t attr,
++ short color_pair_number,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -1656,8 +1664,8 @@
+
+ #undef slk_set
+ int slk_set(
+- int i,
+- const char *astr,
++ int i,
++ const char *astr,
+ int format)
+ { return(*(int *)0); }
+
+@@ -1671,7 +1679,7 @@
+
+ #undef is_linetouched
+ NCURSES_BOOL is_linetouched(
+- WINDOW *win,
++ WINDOW *win,
+ int line)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -1682,9 +1690,9 @@
+
+ #undef wtouchln
+ int wtouchln(
+- WINDOW *win,
+- int y,
+- int n,
++ WINDOW *win,
++ int y,
++ int n,
+ int changed)
+ { return(*(int *)0); }
+
+@@ -1692,7 +1700,7 @@
+
+ #undef _traceattr2
+ char *_traceattr2(
+- int bufnum,
++ int bufnum,
+ attr_t newmode)
+ { return(*(char **)0); }
+
+@@ -1708,13 +1716,13 @@
+
+ #undef _nc_altcharset_name
+ const char *_nc_altcharset_name(
+- attr_t attr,
++ attr_t attr,
+ chtype ch)
+ { return(*(const char **)0); }
+
+ #undef _tracechtype2
+ char *_tracechtype2(
+- int bufnum,
++ int bufnum,
+ chtype ch)
+ { return(*(char **)0); }
+
+@@ -1724,15 +1732,15 @@
+ { return(*(char **)0); }
+
+ #undef _nc_retrace_chtype
+-attr_t _nc_retrace_chtype(
+- attr_t code)
+- { return(*(attr_t *)0); }
++chtype _nc_retrace_chtype(
++ chtype code)
++ { return(*(chtype *)0); }
+
+ /* ./trace/lib_tracedmp.c */
+
+ #undef _tracedump
+ void _tracedump(
+- const char *name,
++ const char *name,
+ WINDOW *win)
+ { /* void */ }
+
+@@ -1767,7 +1775,7 @@
+
+ #undef vidputs
+ int vidputs(
+- chtype newmode,
++ chtype newmode,
+ int (*outc)(
+ int p1))
+ { return(*(int *)0); }
+@@ -1785,8 +1793,8 @@
+
+ #undef wvline
+ int wvline(
+- WINDOW *win,
+- chtype ch,
++ WINDOW *win,
++ chtype ch,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1794,8 +1802,8 @@
+
+ #undef wattr_off
+ int wattr_off(
+- WINDOW *win,
+- attr_t at,
++ WINDOW *win,
++ attr_t at,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -1803,8 +1811,8 @@
+
+ #undef wattr_on
+ int wattr_on(
+- WINDOW *win,
+- attr_t at,
++ WINDOW *win,
++ attr_t at,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -1824,14 +1832,14 @@
+
+ #undef mvderwin
+ int mvderwin(
+- WINDOW *win,
+- int y,
++ WINDOW *win,
++ int y,
+ int x)
+ { return(*(int *)0); }
+
+ #undef syncok
+ int syncok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL bf)
+ { return(*(int *)0); }
+
+@@ -1865,7 +1873,7 @@
+
+ #undef _nc_printf_string
+ char *_nc_printf_string(
+- const char *fmt,
++ const char *fmt,
+ va_list ap)
+ { return(*(char **)0); }
+
+@@ -1885,9 +1893,9 @@
+
+ #undef _nc_scrolln
+ int _nc_scrolln(
+- int n,
+- int top,
+- int bot,
++ int n,
++ int top,
++ int bot,
+ int maxy)
+ { return(*(int *)0); }
+
+@@ -1916,7 +1924,7 @@
+
+ #undef _nc_varargs
+ char *_nc_varargs(
+- const char *fmt,
++ const char *fmt,
+ va_list ap)
+ { return(*(char **)0); }
+
+@@ -1938,11 +1946,19 @@
+ void _nc_vsscanf(void)
+ { /* void */ }
+
++/* ./base/lib_freeall.c */
++
++#include <term_entry.h>
++
++#undef _nc_freeall
++void _nc_freeall(void)
++ { /* void */ }
++
+ /* ./base/define_key.c */
+
+ #undef define_key
+ int define_key(
+- char *str,
++ const char *str,
+ int keycode)
+ { return(*(int *)0); }
+
+@@ -1950,13 +1966,13 @@
+
+ #undef _nc_toggle_attr_on
+ void _nc_toggle_attr_on(
+- attr_t *S,
++ attr_t *S,
+ attr_t at)
+ { /* void */ }
+
+ #undef _nc_toggle_attr_off
+ void _nc_toggle_attr_off(
+- attr_t *S,
++ attr_t *S,
+ attr_t at)
+ { /* void */ }
+
+@@ -1975,11 +1991,18 @@
+ chtype c)
+ { /* void */ }
+
++/* ./base/key_defined.c */
++
++#undef key_defined
++int key_defined(
++ const char *str)
++ { return(*(int *)0); }
++
+ /* ./base/keybound.c */
+
+ #undef keybound
+ char *keybound(
+- int code,
++ int code,
+ int count)
+ { return(*(char **)0); }
+
+@@ -1987,7 +2010,7 @@
+
+ #undef keyok
+ int keyok(
+- int c,
++ int c,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -1999,23 +2022,15 @@
+
+ #undef assume_default_colors
+ int assume_default_colors(
+- int fg,
++ int fg,
+ int bg)
+ { return(*(int *)0); }
+
+-/* ./base/lib_freeall.c */
+-
+-#include <term_entry.h>
+-
+-#undef _nc_freeall
+-void _nc_freeall(void)
+- { /* void */ }
+-
+ /* ./tinfo/lib_print.c */
+
+ #undef mcprint
+ int mcprint(
+- char *data,
++ char *data,
+ int len)
+ { return(*(int *)0); }
+
+@@ -2023,19 +2038,19 @@
+
+ #undef is_term_resized
+ NCURSES_BOOL is_term_resized(
+- int ToLines,
++ int ToLines,
+ int ToCols)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef resize_term
+ int resize_term(
+- int ToLines,
++ int ToLines,
+ int ToCols)
+ { return(*(int *)0); }
+
+ #undef resizeterm
+ int resizeterm(
+- int ToLines,
++ int ToLines,
+ int ToCols)
+ { return(*(int *)0); }
+
+@@ -2050,22 +2065,22 @@
+
+ #undef _nc_expand_try
+ char *_nc_expand_try(
+- struct tries *tree,
+- unsigned short code,
+- int *count,
++ struct tries *tree,
++ unsigned short code,
++ int *count,
+ size_t len)
+ { return(*(char **)0); }
+
+ #undef _nc_remove_key
+ int _nc_remove_key(
+- struct tries **tree,
++ struct tries **tree,
+ unsigned short code)
+ { return(*(int *)0); }
+
+ #undef _nc_remove_string
+ int _nc_remove_string(
+- struct tries **tree,
+- char *string)
++ struct tries **tree,
++ const char *string)
+ { return(*(int *)0); }
+
+ /* ./base/version.c */
+@@ -2078,8 +2093,8 @@
+
+ #undef wresize
+ int wresize(
+- WINDOW *win,
+- int ToLines,
++ WINDOW *win,
++ int ToLines,
+ int ToCols)
+ { return(*(int *)0); }
+
+@@ -2090,6 +2105,11 @@
+ char *path)
+ { return(*(char **)0); }
+
++#undef _nc_pathlast
++unsigned _nc_pathlast(
++ const char *path)
++ { return(*(unsigned *)0); }
++
+ #undef _nc_basename
+ char *_nc_basename(
+ char *path)
+@@ -2097,7 +2117,7 @@
+
+ #undef _nc_access
+ int _nc_access(
+- const char *path,
++ const char *path,
+ int mode)
+ { return(*(int *)0); }
+
+@@ -2109,8 +2129,8 @@
+
+ #undef _nc_add_to_try
+ void _nc_add_to_try(
+- struct tries **tree,
+- const char *str,
++ struct tries **tree,
++ const char *str,
+ unsigned short code)
+ { /* void */ }
+
+@@ -2133,13 +2153,13 @@
+
+ #undef _nc_wrap_entry
+ void _nc_wrap_entry(
+- ENTRY *const ep,
++ ENTRY *const ep,
+ NCURSES_BOOL copy_strings)
+ { /* void */ }
+
+ #undef _nc_merge_entry
+ void _nc_merge_entry(
+- TERMTYPE *const to,
++ TERMTYPE *const to,
+ TERMTYPE *const from)
+ { /* void */ }
+
+@@ -2147,13 +2167,13 @@
+
+ #undef _nc_align_termtype
+ void _nc_align_termtype(
+- TERMTYPE *to,
++ TERMTYPE *to,
+ TERMTYPE *from)
+ { /* void */ }
+
+ #undef _nc_copy_termtype
+ void _nc_copy_termtype(
+- TERMTYPE *dst,
++ TERMTYPE *dst,
+ TERMTYPE *src)
+ { /* void */ }
+
+@@ -2161,15 +2181,15 @@
+
+ #undef _nc_captoinfo
+ char *_nc_captoinfo(
+- const char *cap,
+- const char *s,
++ const char *cap,
++ const char *s,
+ int const parametrized)
+ { return(*(char **)0); }
+
+ #undef _nc_infotocap
+ char *_nc_infotocap(
+- const char *cap,
+- const char *str,
++ const char *cap,
++ const char *str,
+ int const parametrized)
+ { return(*(char **)0); }
+
+@@ -2231,19 +2251,19 @@
+
+ #undef _nc_warning
+ void _nc_warning(
+- const char *const fmt,
++ const char *const fmt,
+ ...)
+ { /* void */ }
+
+ #undef _nc_err_abort
+ void _nc_err_abort(
+- const char *const fmt,
++ const char *const fmt,
+ ...)
+ { /* void */ }
+
+ #undef _nc_syserr_abort
+ void _nc_syserr_abort(
+- const char *const fmt,
++ const char *const fmt,
+ ...)
+ { /* void */ }
+
+@@ -2251,8 +2271,8 @@
+
+ #undef _nc_tic_expand
+ char *_nc_tic_expand(
+- const char *srcp,
+- NCURSES_BOOL tic_format,
++ const char *srcp,
++ NCURSES_BOOL tic_format,
+ int numbers)
+ { return(*(char **)0); }
+
+@@ -2262,14 +2282,14 @@
+
+ #undef _nc_find_entry
+ struct name_table_entry const *_nc_find_entry(
+- const char *string,
++ const char *string,
+ const struct name_table_entry *const *hash_table)
+ { return(*(struct name_table_entry const **)0); }
+
+ #undef _nc_find_type_entry
+ struct name_table_entry const *_nc_find_type_entry(
+- const char *string,
+- int type,
++ const char *string,
++ int type,
+ const struct name_table_entry *table)
+ { return(*(struct name_table_entry const **)0); }
+
+@@ -2290,16 +2310,16 @@
+
+ #undef _nc_entry_match
+ NCURSES_BOOL _nc_entry_match(
+- char *n1,
++ 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,
++ FILE *fp,
++ char *buf,
++ int literal,
++ NCURSES_BOOL silent,
+ NCURSES_BOOL (*hook)(
+ ENTRY *p1))
+ { /* void */ }
+@@ -2333,7 +2353,7 @@
+
+ #undef _nc_trans_string
+ char _nc_trans_string(
+- char *ptr,
++ char *ptr,
+ char *last)
+ { return(*(char *)0); }
+
+@@ -2349,7 +2369,7 @@
+
+ #undef _nc_reset_input
+ void _nc_reset_input(
+- FILE *fp,
++ FILE *fp,
+ char *buf)
+ { /* void */ }
+
+@@ -2357,7 +2377,7 @@
+
+ #undef _nc_doalloc
+ void *_nc_doalloc(
+- void *oldp,
++ void *oldp,
+ size_t amount)
+ { return(*(void **)0); }
+
+@@ -2425,8 +2445,8 @@
+ #include <termcap.h>
+
+ struct speed {
+- int s;
+- int sp;
++ int s;
++ int sp;
+ };
+
+ #undef _nc_baudrate
+@@ -2524,13 +2544,13 @@
+
+ #undef idlok
+ int idlok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+ #undef idcok
+ void idcok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { /* void */ }
+
+@@ -2541,31 +2561,31 @@
+
+ #undef nodelay
+ int nodelay(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+ #undef notimeout
+ int notimeout(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL f)
+ { return(*(int *)0); }
+
+ #undef wtimeout
+ void wtimeout(
+- WINDOW *win,
++ WINDOW *win,
+ int delay)
+ { /* void */ }
+
+ #undef keypad
+ int keypad(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+ #undef meta
+ int meta(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -2617,7 +2637,7 @@
+
+ #undef intrflush
+ int intrflush(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -2625,11 +2645,8 @@
+
+ #include <sys/ioctl.h>
+
+-#undef use_env
+-void use_env(
+- NCURSES_BOOL f)
+- { /* void */ }
+-
++#undef ttytype
++char ttytype[256 ];
+ #undef LINES
+ int LINES;
+ #undef COLS
+@@ -2637,17 +2654,31 @@
+ #undef TABSIZE
+ int TABSIZE;
+
++#undef use_env
++void use_env(
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef _nc_update_screensize
+ void _nc_update_screensize(void)
+ { /* void */ }
+
+-#undef ttytype
+-char ttytype[256 ];
++#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(void)
++ { return(*(int *)0); }
+
+ #undef setupterm
+ int setupterm(
+- char *tname,
+- int Filedes,
++ char *tname,
++ int Filedes,
+ int *errret)
+ { return(*(int *)0); }
+
+@@ -2660,7 +2691,7 @@
+
+ #undef tgetent
+ int tgetent(
+- char *bufp,
++ char *bufp,
+ const char *name)
+ { return(*(int *)0); }
+
+@@ -2682,7 +2713,7 @@
+
+ #undef tgetstr
+ char *tgetstr(
+- char *id,
++ char *id,
+ char **area)
+ { return(*(char **)0); }
+
+@@ -2696,8 +2727,8 @@
+
+ #undef tgoto
+ char *tgoto(
+- const char *string,
+- int x,
++ const char *string,
++ int x,
+ int y)
+ { return(*(char **)0); }
+
+@@ -2731,9 +2762,16 @@
+ #undef _nc_tparm_err
+ int _nc_tparm_err;
+
++#undef _nc_tparm_analyze
++int _nc_tparm_analyze(
++ const char *string,
++ char *p_is_s[9 ],
++ int *popcount)
++ { return(*(int *)0); }
++
+ #undef tparm
+ char *tparm(
+- char *string,
++ char *string,
+ ...)
+ { return(*(char **)0); }
+
+@@ -2767,8 +2805,8 @@
+
+ #undef tputs
+ int tputs(
+- const char *string,
+- int affcnt,
++ const char *string,
++ int affcnt,
+ int (*outc)(
+ int p1))
+ { return(*(int *)0); }
+@@ -2789,15 +2827,25 @@
+
+ #undef _tracef
+ void _tracef(
+- const char *fmt,
++ const char *fmt,
+ ...)
+ { /* void */ }
+
++#undef _nc_retrace_bool
++NCURSES_BOOL _nc_retrace_bool(
++ NCURSES_BOOL code)
++ { return(*(NCURSES_BOOL *)0); }
++
+ #undef _nc_retrace_int
+ int _nc_retrace_int(
+ int code)
+ { return(*(int *)0); }
+
++#undef _nc_retrace_unsigned
++unsigned _nc_retrace_unsigned(
++ unsigned code)
++ { return(*(unsigned *)0); }
++
+ #undef _nc_retrace_ptr
+ char *_nc_retrace_ptr(
+ char *code)
+@@ -2876,8 +2924,8 @@
+
+ #undef _nc_timed_wait
+ int _nc_timed_wait(
+- int mode,
+- int milliseconds,
++ int mode,
++ int milliseconds,
+ int *timeleft)
+ { return(*(int *)0); }
+
+@@ -2890,8 +2938,8 @@
+
+ #undef _nc_name_match
+ int _nc_name_match(
+- const char *const namelst,
+- const char *const name,
++ const char *const namelst,
++ const char *const name,
+ const char *const delim)
+ { return(*(int *)0); }
+
+@@ -2914,14 +2962,14 @@
+
+ #undef _nc_parse_entry
+ int _nc_parse_entry(
+- struct entry *entryp,
+- int literal,
++ struct entry *entryp,
++ int literal,
+ NCURSES_BOOL silent)
+ { return(*(int *)0); }
+
+ #undef _nc_capcmp
+ int _nc_capcmp(
+- const char *s,
++ const char *s,
+ const char *t)
+ { return(*(int *)0); }
+
+@@ -2944,14 +2992,14 @@
+
+ #undef _nc_read_file_entry
+ int _nc_read_file_entry(
+- const char *const filename,
++ const char *const filename,
+ TERMTYPE *ptr)
+ { return(*(int *)0); }
+
+ #undef _nc_read_entry
+ int _nc_read_entry(
+- const char *const tn,
+- char *const filename,
++ const char *const tn,
++ char *const filename,
+ TERMTYPE *const tp)
+ { return(*(int *)0); }
+
+@@ -2959,7 +3007,7 @@
+
+ #undef _nc_read_termcap_entry
+ int _nc_read_termcap_entry(
+- const char *const tn,
++ const char *const tn,
+ TERMTYPE *const tp)
+ { return(*(int *)0); }
+
+@@ -2967,7 +3015,7 @@
+
+ #undef _nc_set_buffer
+ void _nc_set_buffer(
+- FILE *ofp,
++ FILE *ofp,
+ NCURSES_BOOL buffered)
+ { /* void */ }
+
+@@ -2975,32 +3023,32 @@
+
+ #undef _nc_str_init
+ string_desc *_nc_str_init(
+- string_desc *dst,
+- char *src,
++ string_desc *dst,
++ char *src,
+ size_t len)
+ { return(*(string_desc **)0); }
+
+ #undef _nc_str_null
+ string_desc *_nc_str_null(
+- string_desc *dst,
++ string_desc *dst,
+ size_t len)
+ { return(*(string_desc **)0); }
+
+ #undef _nc_str_copy
+ string_desc *_nc_str_copy(
+- string_desc *dst,
++ string_desc *dst,
+ string_desc *src)
+ { return(*(string_desc **)0); }
+
+ #undef _nc_safe_strcat
+ NCURSES_BOOL _nc_safe_strcat(
+- string_desc *dst,
++ string_desc *dst,
+ const char *src)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef _nc_safe_strcpy
+ NCURSES_BOOL _nc_safe_strcpy(
+- string_desc *dst,
++ string_desc *dst,
+ const char *src)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -3013,10 +3061,16 @@
+
+ #undef _nc_trace_buf
+ char *_nc_trace_buf(
+- int bufnum,
++ 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
+@@ -3035,7 +3089,7 @@
+
+ #undef _nc_visbuf2
+ const char *_nc_visbuf2(
+- int bufnum,
++ int bufnum,
+ const char *buf)
+ { return(*(const char **)0); }
+
+@@ -3044,6 +3098,12 @@
+ const char *buf)
+ { return(*(const char **)0); }
+
++#undef _nc_visbufn
++const char *_nc_visbufn(
++ const char *buf,
++ int len)
++ { return(*(const char **)0); }
++
+ /* ./tinfo/write_entry.c */
+
+ #undef _nc_set_writedir
+diff -urNd -urNd ncurses-5.3/ncurses/llib-lncursesw ncurses-5.3.20030906.orig/ncurses/llib-lncursesw
+--- ncurses-5.3/ncurses/llib-lncursesw Sat Aug 31 16:58:14 2002
++++ ncurses-5.3.20030906.orig/ncurses/llib-lncursesw Fri Sep 12 16:42:59 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2002,2003 Free 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,2002 *
++ * Author: Thomas E. Dickey 2001-2003 *
+ ****************************************************************************/
+ /* LINTLIBRARY */
+
+@@ -59,8 +59,8 @@
+
+ #undef _nc_scroll_oldhash
+ void _nc_scroll_oldhash(
+- int n,
+- int top,
++ int n,
++ int top,
+ int bot)
+ { /* void */ }
+
+@@ -70,37 +70,37 @@
+
+ #undef _nc_render
+ cchar_t _nc_render(
+- WINDOW *win,
++ WINDOW *win,
+ cchar_t ch)
+ { return(*(cchar_t *)0); }
+
+ #undef _nc_waddch_nosync
+ int _nc_waddch_nosync(
+- WINDOW *win,
++ WINDOW *win,
+ const cchar_t c)
+ { return(*(int *)0); }
+
+ #undef waddch
+ int waddch(
+- WINDOW *win,
++ WINDOW *win,
+ const chtype ch)
+ { return(*(int *)0); }
+
+ #undef wechochar
+ int wechochar(
+- WINDOW *win,
++ WINDOW *win,
+ const chtype ch)
+ { return(*(int *)0); }
+
+ #undef wadd_wch
+ int wadd_wch(
+- WINDOW *win,
++ WINDOW *win,
+ const cchar_t *wch)
+ { return(*(int *)0); }
+
+ #undef wecho_wchar
+ int wecho_wchar(
+- WINDOW *win,
++ WINDOW *win,
+ const cchar_t *wch)
+ { return(*(int *)0); }
+
+@@ -108,15 +108,15 @@
+
+ #undef waddnstr
+ int waddnstr(
+- WINDOW *win,
+- const char *astr,
++ WINDOW *win,
++ const char *astr,
+ int n)
+ { return(*(int *)0); }
+
+ #undef waddchnstr
+ int waddchnstr(
+- WINDOW *win,
+- const chtype *astr,
++ WINDOW *win,
++ const chtype *astr,
+ int n)
+ { return(*(int *)0); }
+
+@@ -127,15 +127,15 @@
+
+ #undef wadd_wchnstr
+ int wadd_wchnstr(
+- WINDOW *win,
+- const cchar_t *const astr,
++ WINDOW *win,
++ const cchar_t *const astr,
+ int n)
+ { return(*(int *)0); }
+
+ #undef waddnwstr
+ int waddnwstr(
+- WINDOW *win,
+- const wchar_t *str,
++ WINDOW *win,
++ const wchar_t *str,
+ int n)
+ { return(*(int *)0); }
+
+@@ -149,25 +149,25 @@
+
+ #undef wbkgrndset
+ void wbkgrndset(
+- WINDOW *win,
++ WINDOW *win,
+ const cchar_t *ch)
+ { /* void */ }
+
+ #undef wbkgdset
+ void wbkgdset(
+- WINDOW *win,
++ WINDOW *win,
+ chtype ch)
+ { /* void */ }
+
+ #undef wbkgrnd
+ int wbkgrnd(
+- WINDOW *win,
++ WINDOW *win,
+ const cchar_t *ch)
+ { return(*(int *)0); }
+
+ #undef wbkgd
+ int wbkgd(
+- WINDOW *win,
++ WINDOW *win,
+ chtype ch)
+ { return(*(int *)0); }
+
+@@ -175,14 +175,14 @@
+
+ #undef wborder
+ int wborder(
+- WINDOW *win,
+- chtype ls,
+- chtype rs,
+- chtype ts,
+- chtype bs,
+- chtype tl,
+- chtype tr,
+- chtype bl,
++ WINDOW *win,
++ chtype ls,
++ chtype rs,
++ chtype ts,
++ chtype bs,
++ chtype tl,
++ chtype tr,
++ chtype bl,
+ chtype br)
+ { return(*(int *)0); }
+
+@@ -190,10 +190,10 @@
+
+ #undef wchgat
+ int wchgat(
+- WINDOW *win,
+- int n,
+- attr_t attr,
+- short color,
++ WINDOW *win,
++ int n,
++ attr_t attr,
++ short color,
+ const void *opts)
+ { return(*(int *)0); }
+
+@@ -208,7 +208,7 @@
+
+ #undef clearok
+ int clearok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -235,22 +235,26 @@
+ #undef COLORS
+ int COLORS;
+
++#undef _nc_reset_colors
++NCURSES_BOOL _nc_reset_colors(void)
++ { return(*(NCURSES_BOOL *)0); }
++
+ #undef start_color
+ int start_color(void)
+ { return(*(int *)0); }
+
+ #undef init_pair
+ int init_pair(
+- short pair,
+- short f,
++ short pair,
++ short f,
+ short b)
+ { return(*(int *)0); }
+
+ #undef init_color
+ int init_color(
+- short color,
+- short r,
+- short g,
++ short color,
++ short r,
++ short g,
+ short b)
+ { return(*(int *)0); }
+
+@@ -264,24 +268,24 @@
+
+ #undef color_content
+ int color_content(
+- short color,
+- short *r,
+- short *g,
++ short color,
++ short *r,
++ short *g,
+ short *b)
+ { return(*(int *)0); }
+
+ #undef pair_content
+ int pair_content(
+- short pair,
+- short *f,
++ short pair,
++ short *f,
+ short *b)
+ { return(*(int *)0); }
+
+ #undef _nc_do_color
+ void _nc_do_color(
+- int old_pair,
+- int pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ NCURSES_BOOL reverse,
+ int (*outc)(
+ int p1))
+ { /* void */ }
+@@ -290,8 +294,8 @@
+
+ #undef wcolor_set
+ int wcolor_set(
+- WINDOW *win,
+- short color_pair_number,
++ WINDOW *win,
++ short color_pair_number,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -347,7 +351,7 @@
+
+ #undef addchnstr
+ int addchnstr(
+- const chtype *a1,
++ const chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -358,7 +362,7 @@
+
+ #undef addnstr
+ int addnstr(
+- const char *a1,
++ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -384,27 +388,27 @@
+
+ #undef attr_get
+ int attr_get(
+- attr_t *a1,
+- short *a2,
++ attr_t *a1,
++ short *a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_off
+ int attr_off(
+- attr_t a1,
++ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_on
+ int attr_on(
+- attr_t a1,
++ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_set
+ int attr_set(
+- attr_t a1,
+- short a2,
++ attr_t a1,
++ short a2,
+ void *z)
+ { return(*(int *)0); }
+
+@@ -420,28 +424,28 @@
+
+ #undef border
+ int border(
+- chtype a1,
+- chtype a2,
+- chtype a3,
+- chtype a4,
+- chtype a5,
+- chtype a6,
+- chtype a7,
++ chtype a1,
++ chtype a2,
++ chtype a3,
++ chtype a4,
++ chtype a5,
++ chtype a6,
++ chtype a7,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef box
+ int box(
+- WINDOW *a1,
+- chtype a2,
++ WINDOW *a1,
++ chtype a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef chgat
+ int chgat(
+- int a1,
+- attr_t a2,
+- short a3,
++ int a1,
++ attr_t a2,
++ short a3,
+ const void *z)
+ { return(*(int *)0); }
+
+@@ -459,7 +463,7 @@
+
+ #undef color_set
+ int color_set(
+- short a1,
++ short a1,
+ void *z)
+ { return(*(int *)0); }
+
+@@ -496,7 +500,7 @@
+
+ #undef getnstr
+ int getnstr(
+- char *a1,
++ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -507,7 +511,7 @@
+
+ #undef hline
+ int hline(
+- chtype a1,
++ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -517,7 +521,7 @@
+
+ #undef inchnstr
+ int inchnstr(
+- chtype *a1,
++ chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -528,7 +532,7 @@
+
+ #undef innstr
+ int innstr(
+- char *a1,
++ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -548,7 +552,7 @@
+
+ #undef insnstr
+ int insnstr(
+- const char *a1,
++ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -564,323 +568,323 @@
+
+ #undef move
+ int move(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddch
+ int mvaddch(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvaddchnstr
+ int mvaddchnstr(
+- int a1,
+- int a2,
+- const chtype *a3,
++ int a1,
++ int a2,
++ const chtype *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddchstr
+ int mvaddchstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnstr
+ int mvaddnstr(
+- int a1,
+- int a2,
+- const char *a3,
++ int a1,
++ int a2,
++ const char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddstr
+ int mvaddstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvchgat
+ int mvchgat(
+- int a1,
+- int a2,
+- int a3,
+- attr_t a4,
+- short a5,
++ int a1,
++ int a2,
++ int a3,
++ attr_t a4,
++ short a5,
+ const void *z)
+ { return(*(int *)0); }
+
+ #undef mvdelch
+ int mvdelch(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetch
+ int mvgetch(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetnstr
+ int mvgetnstr(
+- int a1,
+- int a2,
+- char *a3,
++ int a1,
++ int a2,
++ char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetstr
+ int mvgetstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvhline
+ int mvhline(
+- int a1,
+- int a2,
+- chtype a3,
++ int a1,
++ int a2,
++ chtype a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinch
+ chtype mvinch(
+- int a1,
++ int a1,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvinchnstr
+ int mvinchnstr(
+- int a1,
+- int a2,
+- chtype *a3,
++ int a1,
++ int a2,
++ chtype *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinchstr
+ int mvinchstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvinnstr
+ int mvinnstr(
+- int a1,
+- int a2,
+- char *a3,
++ int a1,
++ int a2,
++ char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinsch
+ int mvinsch(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvinsnstr
+ int mvinsnstr(
+- int a1,
+- int a2,
+- const char *a3,
++ int a1,
++ int a2,
++ const char *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvinsstr
+ int mvinsstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvinstr
+ int mvinstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvvline
+ int mvvline(
+- int a1,
+- int a2,
+- chtype a3,
++ int a1,
++ int a2,
++ chtype a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwaddch
+ int mvwaddch(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvwaddchnstr
+ int mvwaddchnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const chtype *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const chtype *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwaddchstr
+ int mvwaddchstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvwaddnstr
+ int mvwaddnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwaddstr
+ int mvwaddstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvwchgat
+ int mvwchgat(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- int a4,
+- attr_t a5,
+- short a6,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ int a4,
++ attr_t a5,
++ short a6,
+ const void *z)
+ { return(*(int *)0); }
+
+ #undef mvwdelch
+ int mvwdelch(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetch
+ int mvwgetch(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetnstr
+ int mvwgetnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetstr
+ int mvwgetstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvwhline
+ int mvwhline(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- chtype a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ chtype a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinch
+ chtype mvwinch(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvwinchnstr
+ int mvwinchnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- chtype *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ chtype *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinchstr
+ int mvwinchstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvwinnstr
+ int mvwinnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinsch
+ int mvwinsch(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvwinsnstr
+ int mvwinsnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const char *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const char *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwinsstr
+ int mvwinsstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvwinstr
+ int mvwinstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvwvline
+ int mvwvline(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- chtype a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ chtype a4,
+ int z)
+ { return(*(int *)0); }
+
+@@ -910,19 +914,19 @@
+
+ #undef setscrreg
+ int setscrreg(
+- int a1,
++ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef slk_attr_off
+ int slk_attr_off(
+- const attr_t a1,
++ const attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef slk_attr_on
+ int slk_attr_on(
+- attr_t a1,
++ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+@@ -941,8 +945,8 @@
+
+ #undef touchline
+ int touchline(
+- WINDOW *a1,
+- int a2,
++ WINDOW *a1,
++ int a2,
+ int z)
+ { return(*(int *)0); }
+
+@@ -958,67 +962,67 @@
+
+ #undef vline
+ int vline(
+- chtype a1,
++ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef vw_printw
+ int vw_printw(
+- WINDOW *a1,
+- char *a2,
++ WINDOW *a1,
++ const char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef vw_scanw
+ int vw_scanw(
+- WINDOW *a1,
+- char *a2,
++ WINDOW *a1,
++ char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef waddchstr
+ int waddchstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef waddstr
+ int waddstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef wattron
+ int wattron(
+- WINDOW *a1,
++ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattroff
+ int wattroff(
+- WINDOW *a1,
++ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattrset
+ int wattrset(
+- WINDOW *a1,
++ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattr_get
+ int wattr_get(
+- WINDOW *a1,
+- attr_t *a2,
+- short *a3,
++ WINDOW *a1,
++ attr_t *a2,
++ short *a3,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef wattr_set
+ int wattr_set(
+- WINDOW *a1,
+- attr_t a2,
+- short a3,
++ WINDOW *a1,
++ attr_t a2,
++ short a3,
+ void *z)
+ { return(*(int *)0); }
+
+@@ -1029,13 +1033,13 @@
+
+ #undef wgetstr
+ int wgetstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef winchstr
+ int winchstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ chtype *z)
+ { return(*(int *)0); }
+
+@@ -1046,13 +1050,13 @@
+
+ #undef winsstr
+ int winsstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef winstr
+ int winstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+@@ -1073,7 +1077,7 @@
+
+ #undef add_wchnstr
+ int add_wchnstr(
+- const cchar_t *a1,
++ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -1084,7 +1088,7 @@
+
+ #undef addnwstr
+ int addnwstr(
+- const wchar_t *a1,
++ const wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -1105,20 +1109,20 @@
+
+ #undef border_set
+ int border_set(
+- const cchar_t *a1,
+- const cchar_t *a2,
+- const cchar_t *a3,
+- const cchar_t *a4,
+- const cchar_t *a5,
+- const cchar_t *a6,
+- const cchar_t *a7,
++ const cchar_t *a1,
++ const cchar_t *a2,
++ const cchar_t *a3,
++ const cchar_t *a4,
++ const cchar_t *a5,
++ const cchar_t *a6,
++ const cchar_t *a7,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef box_set
+ int box_set(
+- WINDOW *a1,
+- const cchar_t *a2,
++ WINDOW *a1,
++ const cchar_t *a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+@@ -1129,12 +1133,12 @@
+
+ #undef get_wch
+ int get_wch(
+- wint_t *z)
++ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef get_wstr
+ int get_wstr(
+- wint_t *z)
++ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef getbkgrnd
+@@ -1144,13 +1148,13 @@
+
+ #undef getn_wstr
+ int getn_wstr(
+- wint_t *a1,
++ wint_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef hline_set
+ int hline_set(
+- const cchar_t *a1,
++ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -1161,7 +1165,7 @@
+
+ #undef in_wchnstr
+ int in_wchnstr(
+- cchar_t *a1,
++ cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -1172,13 +1176,13 @@
+
+ #undef innwstr
+ int innwstr(
+- wchar_t *a1,
++ wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef ins_nwstr
+ int ins_nwstr(
+- const wchar_t *a1,
++ const wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+@@ -1194,335 +1198,335 @@
+
+ #undef inwstr
+ int inwstr(
+- wchar_t *z)
++ wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvadd_wch
+ int mvadd_wch(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvadd_wchnstr
+ int mvadd_wchnstr(
+- int a1,
+- int a2,
+- const cchar_t *a3,
++ int a1,
++ int a2,
++ const cchar_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvadd_wchstr
+ int mvadd_wchstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnwstr
+ int mvaddnwstr(
+- int a1,
+- int a2,
+- const wchar_t *a3,
++ int a1,
++ int a2,
++ const wchar_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddwstr
+ int mvaddwstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvget_wch
+ int mvget_wch(
+- int a1,
+- int a2,
+- wint_t *z)
++ int a1,
++ int a2,
++ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvget_wstr
+ int mvget_wstr(
+- int a1,
+- int a2,
+- wint_t *z)
++ int a1,
++ int a2,
++ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvgetn_wstr
+ int mvgetn_wstr(
+- int a1,
+- int a2,
+- wint_t *a3,
++ int a1,
++ int a2,
++ wint_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvhline_set
+ int mvhline_set(
+- int a1,
+- int a2,
+- const cchar_t *a3,
++ int a1,
++ int a2,
++ const cchar_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvin_wch
+ int mvin_wch(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvin_wchnstr
+ int mvin_wchnstr(
+- int a1,
+- int a2,
+- cchar_t *a3,
++ int a1,
++ int a2,
++ cchar_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvin_wchstr
+ int mvin_wchstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvinnwstr
+ int mvinnwstr(
+- int a1,
+- int a2,
+- wchar_t *a3,
++ int a1,
++ int a2,
++ wchar_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvins_nwstr
+ int mvins_nwstr(
+- int a1,
+- int a2,
+- const wchar_t *a3,
++ int a1,
++ int a2,
++ const wchar_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvins_wch
+ int mvins_wch(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvins_wstr
+ int mvins_wstr(
+- int a1,
+- int a2,
++ int a1,
++ int a2,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvinwstr
+ int mvinwstr(
+- int a1,
+- int a2,
+- wchar_t *z)
++ int a1,
++ int a2,
++ wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvvline_set
+ int mvvline_set(
+- int a1,
+- int a2,
+- const cchar_t *a3,
++ int a1,
++ int a2,
++ const cchar_t *a3,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwadd_wch
+ int mvwadd_wch(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwadd_wchnstr
+ int mvwadd_wchnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const cchar_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const cchar_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwadd_wchstr
+ int mvwadd_wchstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwaddnwstr
+ int mvwaddnwstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const wchar_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const wchar_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwaddwstr
+ int mvwaddwstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwget_wch
+ int mvwget_wch(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- wint_t *z)
++ WINDOW *a1,
++ int a2,
++ int a3,
++ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwget_wstr
+ int mvwget_wstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- wint_t *z)
++ WINDOW *a1,
++ int a2,
++ int a3,
++ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwgetn_wstr
+ int mvwgetn_wstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- wint_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ wint_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwhline_set
+ int mvwhline_set(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const cchar_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const cchar_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwin_wch
+ int mvwin_wch(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwin_wchnstr
+ int mvwin_wchnstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- cchar_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ cchar_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwin_wchstr
+ int mvwin_wchstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwinnwstr
+ int mvwinnwstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- wchar_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ wchar_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwins_nwstr
+ int mvwins_nwstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const wchar_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const wchar_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwins_wch
+ int mvwins_wch(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwins_wstr
+ int mvwins_wstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
++ WINDOW *a1,
++ int a2,
++ int a3,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwinwstr
+ int mvwinwstr(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- wchar_t *z)
++ WINDOW *a1,
++ int a2,
++ int a3,
++ wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvwvline_set
+ int mvwvline_set(
+- WINDOW *a1,
+- int a2,
+- int a3,
+- const cchar_t *a4,
++ WINDOW *a1,
++ int a2,
++ int a3,
++ const cchar_t *a4,
+ int z)
+ { return(*(int *)0); }
+
+ #undef vline_set
+ int vline_set(
+- const cchar_t *a1,
++ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wadd_wchstr
+ int wadd_wchstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef waddwstr
+ int waddwstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef wget_wstr
+ int wget_wstr(
+- WINDOW *a1,
+- wint_t *z)
++ WINDOW *a1,
++ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef win_wchstr
+ int win_wchstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef wins_wstr
+ int wins_wstr(
+- WINDOW *a1,
++ WINDOW *a1,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mouse_trafo
+ NCURSES_BOOL mouse_trafo(
+- int *a1,
+- int *a2,
++ int *a1,
++ int *a2,
+ NCURSES_BOOL z)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -1535,8 +1539,8 @@
+
+ #undef _nc_wgetch
+ int _nc_wgetch(
+- WINDOW *win,
+- unsigned long *result,
++ WINDOW *win,
++ unsigned long *result,
+ int use_meta)
+ { return(*(int *)0); }
+
+@@ -1549,8 +1553,8 @@
+
+ #undef wgetnstr
+ int wgetnstr(
+- WINDOW *win,
+- char *str,
++ WINDOW *win,
++ char *str,
+ int maxlen)
+ { return(*(int *)0); }
+
+@@ -1558,8 +1562,8 @@
+
+ #undef whline
+ int whline(
+- WINDOW *win,
+- chtype ch,
++ WINDOW *win,
++ chtype ch,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1567,7 +1571,7 @@
+
+ #undef immedok
+ void immedok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { /* void */ }
+
+@@ -1575,8 +1579,8 @@
+
+ #undef winchnstr
+ int winchnstr(
+- WINDOW *win,
+- chtype *str,
++ WINDOW *win,
++ chtype *str,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1588,26 +1592,30 @@
+
+ /* ./base/lib_insch.c */
+
++#undef _nc_insert_ch
++void _nc_insert_ch(
++ WINDOW *win,
++ chtype ch)
++ { /* void */ }
++
+ #undef winsch
+ int winsch(
+- WINDOW *win,
++ WINDOW *win,
+ chtype c)
+ { return(*(int *)0); }
+
+-/* ./base/lib_insdel.c */
+-
+-#undef winsdelln
+-int winsdelln(
+- WINDOW *win,
++#undef winsnstr
++int winsnstr(
++ WINDOW *win,
++ const char *s,
+ int n)
+ { return(*(int *)0); }
+
+-/* ./base/lib_insstr.c */
++/* ./base/lib_insdel.c */
+
+-#undef winsnstr
+-int winsnstr(
+- WINDOW *win,
+- const char *s,
++#undef winsdelln
++int winsdelln(
++ WINDOW *win,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1615,8 +1623,8 @@
+
+ #undef winnstr
+ int winnstr(
+- WINDOW *win,
+- char *str,
++ WINDOW *win,
++ char *str,
+ int n)
+ { return(*(int *)0); }
+
+@@ -1630,7 +1638,7 @@
+
+ #undef leaveok
+ int leaveok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -1648,14 +1656,14 @@
+
+ #undef mousemask
+ mmask_t mousemask(
+- mmask_t newmask,
++ mmask_t newmask,
+ mmask_t *oldmask)
+ { return(*(mmask_t *)0); }
+
+ #undef wenclose
+ NCURSES_BOOL wenclose(
+- const WINDOW *win,
+- int y,
++ const WINDOW *win,
++ int y,
+ int x)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -1670,9 +1678,9 @@
+
+ #undef wmouse_trafo
+ NCURSES_BOOL wmouse_trafo(
+- const WINDOW *win,
+- int *pY,
+- int *pX,
++ const WINDOW *win,
++ int *pY,
++ int *pX,
+ NCURSES_BOOL to_screen)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -1680,8 +1688,8 @@
+
+ #undef wmove
+ int wmove(
+- WINDOW *win,
+- int y,
++ WINDOW *win,
++ int y,
+ int x)
+ { return(*(int *)0); }
+
+@@ -1689,7 +1697,7 @@
+
+ #undef _nc_msec_cost
+ int _nc_msec_cost(
+- const char *const cap,
++ const char *const cap,
+ int affcnt)
+ { return(*(int *)0); }
+
+@@ -1707,9 +1715,9 @@
+
+ #undef mvcur
+ int mvcur(
+- int yold,
+- int xold,
+- int ynew,
++ int yold,
++ int xold,
++ int ynew,
+ int xnew)
+ { return(*(int *)0); }
+
+@@ -1720,8 +1728,8 @@
+
+ #undef mvwin
+ int mvwin(
+- WINDOW *win,
+- int by,
++ WINDOW *win,
++ int by,
+ int bx)
+ { return(*(int *)0); }
+
+@@ -1733,8 +1741,8 @@
+
+ #undef newterm
+ SCREEN *newterm(
+- char *name,
+- FILE *ofp,
++ char *name,
++ FILE *ofp,
+ FILE *ifp)
+ { return(*(SCREEN **)0); }
+
+@@ -1747,36 +1755,36 @@
+
+ #undef newwin
+ WINDOW *newwin(
+- int num_lines,
+- int num_columns,
+- int begy,
++ int num_lines,
++ int num_columns,
++ int begy,
+ int begx)
+ { return(*(WINDOW **)0); }
+
+ #undef derwin
+ WINDOW *derwin(
+- WINDOW *orig,
+- int num_lines,
+- int num_columns,
+- int begy,
++ WINDOW *orig,
++ int num_lines,
++ int num_columns,
++ int begy,
+ int begx)
+ { return(*(WINDOW **)0); }
+
+ #undef subwin
+ WINDOW *subwin(
+- WINDOW *w,
+- int l,
+- int c,
+- int y,
++ WINDOW *w,
++ int l,
++ int c,
++ int y,
+ int x)
+ { return(*(WINDOW **)0); }
+
+ #undef _nc_makenew
+ WINDOW *_nc_makenew(
+- int num_lines,
+- int num_columns,
+- int begy,
+- int begx,
++ int num_lines,
++ int num_columns,
++ int begy,
++ int begx,
+ int flags)
+ { return(*(WINDOW **)0); }
+
+@@ -1794,26 +1802,26 @@
+
+ #undef overlay
+ int overlay(
+- const WINDOW *win1,
++ const WINDOW *win1,
+ WINDOW *win2)
+ { return(*(int *)0); }
+
+ #undef overwrite
+ int overwrite(
+- const WINDOW *win1,
++ const WINDOW *win1,
+ WINDOW *win2)
+ { return(*(int *)0); }
+
+ #undef copywin
+ int copywin(
+- const WINDOW *src,
+- WINDOW *dst,
+- int sminrow,
+- int smincol,
+- int dminrow,
+- int dmincol,
+- int dmaxrow,
+- int dmaxcol,
++ const WINDOW *src,
++ WINDOW *dst,
++ int sminrow,
++ int smincol,
++ int dminrow,
++ int dmincol,
++ int dmaxrow,
++ int dmaxcol,
+ int over)
+ { return(*(int *)0); }
+
+@@ -1821,44 +1829,44 @@
+
+ #undef newpad
+ WINDOW *newpad(
+- int l,
++ int l,
+ int c)
+ { return(*(WINDOW **)0); }
+
+ #undef subpad
+ WINDOW *subpad(
+- WINDOW *orig,
+- int l,
+- int c,
+- int begy,
++ WINDOW *orig,
++ int l,
++ int c,
++ int begy,
+ int begx)
+ { return(*(WINDOW **)0); }
+
+ #undef prefresh
+ int prefresh(
+- WINDOW *win,
+- int pminrow,
+- int pmincol,
+- int sminrow,
+- int smincol,
+- int smaxrow,
++ WINDOW *win,
++ int pminrow,
++ int pmincol,
++ int sminrow,
++ int smincol,
++ int smaxrow,
+ int smaxcol)
+ { return(*(int *)0); }
+
+ #undef pnoutrefresh
+ int pnoutrefresh(
+- WINDOW *win,
+- int pminrow,
+- int pmincol,
+- int sminrow,
+- int smincol,
+- int smaxrow,
++ WINDOW *win,
++ int pminrow,
++ int pmincol,
++ int sminrow,
++ int smincol,
++ int smaxrow,
+ int smaxcol)
+ { return(*(int *)0); }
+
+ #undef pechochar
+ int pechochar(
+- WINDOW *pad,
++ WINDOW *pad,
+ const chtype ch)
+ { return(*(int *)0); }
+
+@@ -1866,38 +1874,38 @@
+
+ #undef printw
+ int printw(
+- char *fmt,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef wprintw
+ int wprintw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvprintw
+ int mvprintw(
+- int y,
+- int x,
+- char *fmt,
++ int y,
++ int x,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvwprintw
+ int mvwprintw(
+- WINDOW *win,
+- int y,
+- int x,
+- char *fmt,
++ WINDOW *win,
++ int y,
++ int x,
++ const char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef vwprintw
+ int vwprintw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ const char *fmt,
+ va_list argp)
+ { return(*(int *)0); }
+
+@@ -1905,8 +1913,8 @@
+
+ #undef wredrawln
+ int wredrawln(
+- WINDOW *win,
+- int beg,
++ WINDOW *win,
++ int beg,
+ int num)
+ { return(*(int *)0); }
+
+@@ -1926,8 +1934,8 @@
+
+ #undef restartterm
+ int restartterm(
+- char *termp,
+- int filenum,
++ char *termp,
++ int filenum,
+ int *errret)
+ { return(*(int *)0); }
+
+@@ -1935,38 +1943,38 @@
+
+ #undef vwscanw
+ int vwscanw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ char *fmt,
+ va_list argp)
+ { return(*(int *)0); }
+
+ #undef scanw
+ int scanw(
+- char *fmt,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef wscanw
+ int wscanw(
+- WINDOW *win,
+- char *fmt,
++ WINDOW *win,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvscanw
+ int mvscanw(
+- int y,
+- int x,
+- char *fmt,
++ int y,
++ int x,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+ #undef mvwscanw
+ int mvwscanw(
+- WINDOW *win,
+- int y,
+- int x,
+- char *fmt,
++ WINDOW *win,
++ int y,
++ int x,
++ char *fmt,
+ ...)
+ { return(*(int *)0); }
+
+@@ -1979,7 +1987,7 @@
+
+ #undef putwin
+ int putwin(
+- WINDOW *win,
++ WINDOW *win,
+ FILE *filep)
+ { return(*(int *)0); }
+
+@@ -2007,16 +2015,16 @@
+
+ #undef _nc_scroll_window
+ void _nc_scroll_window(
+- WINDOW *win,
+- int const n,
+- short const top,
+- short const bottom,
++ WINDOW *win,
++ int const n,
++ short const top,
++ short const bottom,
+ cchar_t blank)
+ { /* void */ }
+
+ #undef wscrl
+ int wscrl(
+- WINDOW *win,
++ WINDOW *win,
+ int n)
+ { return(*(int *)0); }
+
+@@ -2024,7 +2032,7 @@
+
+ #undef scrollok
+ int scrollok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -2032,8 +2040,8 @@
+
+ #undef wsetscrreg
+ int wsetscrreg(
+- WINDOW *win,
+- int top,
++ WINDOW *win,
++ int top,
+ int bottom)
+ { return(*(int *)0); }
+
+@@ -2051,24 +2059,24 @@
+
+ #undef _nc_setupscreen
+ int _nc_setupscreen(
+- short slines,
+- short const scolumns,
++ short slines,
++ short const scolumns,
+ FILE *output)
+ { return(*(int *)0); }
+
+ #undef _nc_ripoffline
+ int _nc_ripoffline(
+- int line,
++ int line,
+ int (*init)(
+- WINDOW *p1,
++ WINDOW *p1,
+ int p2))
+ { return(*(int *)0); }
+
+ #undef ripoffline
+ int ripoffline(
+- int line,
++ int line,
+ int (*init)(
+- WINDOW *p1,
++ WINDOW *p1,
+ int p2))
+ { return(*(int *)0); }
+
+@@ -2079,7 +2087,7 @@
+
+ #undef _nc_slk_initialize
+ int _nc_slk_initialize(
+- WINDOW *stwin,
++ WINDOW *stwin,
+ int cols)
+ { return(*(int *)0); }
+
+@@ -2091,8 +2099,8 @@
+
+ #undef slk_attr_set
+ int slk_attr_set(
+- const attr_t attr,
+- short color_pair_number,
++ const attr_t attr,
++ short color_pair_number,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -2164,8 +2172,8 @@
+
+ #undef slk_set
+ int slk_set(
+- int i,
+- const char *astr,
++ int i,
++ const char *astr,
+ int format)
+ { return(*(int *)0); }
+
+@@ -2179,7 +2187,7 @@
+
+ #undef is_linetouched
+ NCURSES_BOOL is_linetouched(
+- WINDOW *win,
++ WINDOW *win,
+ int line)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -2190,9 +2198,9 @@
+
+ #undef wtouchln
+ int wtouchln(
+- WINDOW *win,
+- int y,
+- int n,
++ WINDOW *win,
++ int y,
++ int n,
+ int changed)
+ { return(*(int *)0); }
+
+@@ -2200,7 +2208,7 @@
+
+ #undef _traceattr2
+ char *_traceattr2(
+- int bufnum,
++ int bufnum,
+ attr_t newmode)
+ { return(*(char **)0); }
+
+@@ -2216,13 +2224,13 @@
+
+ #undef _nc_altcharset_name
+ const char *_nc_altcharset_name(
+- attr_t attr,
++ attr_t attr,
+ chtype ch)
+ { return(*(const char **)0); }
+
+ #undef _tracechtype2
+ char *_tracechtype2(
+- int bufnum,
++ int bufnum,
+ chtype ch)
+ { return(*(char **)0); }
+
+@@ -2232,13 +2240,13 @@
+ { return(*(char **)0); }
+
+ #undef _nc_retrace_chtype
+-attr_t _nc_retrace_chtype(
+- attr_t code)
+- { return(*(attr_t *)0); }
++chtype _nc_retrace_chtype(
++ chtype code)
++ { return(*(chtype *)0); }
+
+ #undef _tracecchar_t2
+ char *_tracecchar_t2(
+- int bufnum,
++ int bufnum,
+ const cchar_t *ch)
+ { return(*(char **)0); }
+
+@@ -2251,7 +2259,7 @@
+
+ #undef _tracedump
+ void _tracedump(
+- const char *name,
++ const char *name,
+ WINDOW *win)
+ { /* void */ }
+
+@@ -2286,7 +2294,7 @@
+
+ #undef vidputs
+ int vidputs(
+- chtype newmode,
++ chtype newmode,
+ int (*outc)(
+ int p1))
+ { return(*(int *)0); }
+@@ -2304,8 +2312,8 @@
+
+ #undef wvline
+ int wvline(
+- WINDOW *win,
+- chtype ch,
++ WINDOW *win,
++ chtype ch,
+ int n)
+ { return(*(int *)0); }
+
+@@ -2313,8 +2321,8 @@
+
+ #undef wattr_off
+ int wattr_off(
+- WINDOW *win,
+- attr_t at,
++ WINDOW *win,
++ attr_t at,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -2322,8 +2330,8 @@
+
+ #undef wattr_on
+ int wattr_on(
+- WINDOW *win,
+- attr_t at,
++ WINDOW *win,
++ attr_t at,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -2343,14 +2351,14 @@
+
+ #undef mvderwin
+ int mvderwin(
+- WINDOW *win,
+- int y,
++ WINDOW *win,
++ int y,
+ int x)
+ { return(*(int *)0); }
+
+ #undef syncok
+ int syncok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL bf)
+ { return(*(int *)0); }
+
+@@ -2384,7 +2392,7 @@
+
+ #undef _nc_printf_string
+ char *_nc_printf_string(
+- const char *fmt,
++ const char *fmt,
+ va_list ap)
+ { return(*(char **)0); }
+
+@@ -2404,9 +2412,9 @@
+
+ #undef _nc_scrolln
+ int _nc_scrolln(
+- int n,
+- int top,
+- int bot,
++ int n,
++ int top,
++ int bot,
+ int maxy)
+ { return(*(int *)0); }
+
+@@ -2435,7 +2443,7 @@
+
+ #undef _nc_varargs
+ char *_nc_varargs(
+- const char *fmt,
++ const char *fmt,
+ va_list ap)
+ { return(*(char **)0); }
+
+@@ -2457,18 +2465,43 @@
+ void _nc_vsscanf(void)
+ { /* void */ }
+
++/* ./base/lib_freeall.c */
++
++#include <term_entry.h>
++
++#undef _nc_freeall
++void _nc_freeall(void)
++ { /* void */ }
++
++/* ./widechar/charable.c */
++
++#undef _nc_is_charable
++NCURSES_BOOL _nc_is_charable(
++ wchar_t ch)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_to_char
++int _nc_to_char(
++ wint_t ch)
++ { return(*(int *)0); }
++
++#undef _nc_to_widechar
++wint_t _nc_to_widechar(
++ int ch)
++ { return(*(wint_t *)0); }
++
+ /* ./widechar/lib_box_set.c */
+
+ #undef wborder_set
+ int wborder_set(
+- WINDOW *win,
+- const cchar_t *ls,
+- const cchar_t *rs,
+- const cchar_t *ts,
+- const cchar_t *bs,
+- const cchar_t *tl,
+- const cchar_t *tr,
+- const cchar_t *bl,
++ WINDOW *win,
++ const cchar_t *ls,
++ const cchar_t *rs,
++ const cchar_t *ts,
++ const cchar_t *bs,
++ const cchar_t *tl,
++ const cchar_t *tr,
++ const cchar_t *bl,
+ const cchar_t *br)
+ { return(*(int *)0); }
+
+@@ -2476,19 +2509,19 @@
+
+ #undef setcchar
+ int setcchar(
+- cchar_t *wcval,
+- const wchar_t *wch,
+- const attr_t attrs,
+- short color_pair,
++ cchar_t *wcval,
++ const wchar_t *wch,
++ const attr_t attrs,
++ short color_pair,
+ const void *opts)
+ { return(*(int *)0); }
+
+ #undef getcchar
+ int getcchar(
+- const cchar_t *wcval,
+- wchar_t *wch,
+- attr_t *attrs,
+- short *color_pair,
++ const cchar_t *wcval,
++ wchar_t *wch,
++ attr_t *attrs,
++ short *color_pair,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -2496,28 +2529,28 @@
+
+ #undef wget_wch
+ int wget_wch(
+- WINDOW *win,
+- wint_t *result)
++ WINDOW *win,
++ wint_t *result)
+ { return(*(int *)0); }
+
+ /* ./widechar/lib_erasewchar.c */
+
+ #undef erasewchar
+ int erasewchar(
+- wchar_t *wch)
++ wchar_t *wch)
+ { return(*(int *)0); }
+
+ #undef killwchar
+ int killwchar(
+- wchar_t *wch)
++ wchar_t *wch)
+ { return(*(int *)0); }
+
+ /* ./widechar/lib_get_wstr.c */
+
+ #undef wgetn_wstr
+ int wgetn_wstr(
+- WINDOW *win,
+- wint_t *str,
++ WINDOW *win,
++ wint_t *str,
+ int maxlen)
+ { return(*(int *)0); }
+
+@@ -2525,8 +2558,8 @@
+
+ #undef whline_set
+ int whline_set(
+- WINDOW *win,
+- const cchar_t *ch,
++ WINDOW *win,
++ const cchar_t *ch,
+ int n)
+ { return(*(int *)0); }
+
+@@ -2534,7 +2567,7 @@
+
+ #undef win_wch
+ int win_wch(
+- WINDOW *win,
++ WINDOW *win,
+ cchar_t *wcval)
+ { return(*(int *)0); }
+
+@@ -2542,17 +2575,8 @@
+
+ #undef win_wchnstr
+ int win_wchnstr(
+- WINDOW *win,
+- cchar_t *wchstr,
+- int n)
+- { return(*(int *)0); }
+-
+-/* ./widechar/lib_ins_nwstr.c */
+-
+-#undef wins_nwstr
+-int wins_nwstr(
+- WINDOW *win,
+- const wchar_t *wstr,
++ WINDOW *win,
++ cchar_t *wchstr,
+ int n)
+ { return(*(int *)0); }
+
+@@ -2560,23 +2584,39 @@
+
+ #undef wins_wch
+ int wins_wch(
+- WINDOW *win,
++ WINDOW *win,
+ const cchar_t *wch)
+ { return(*(int *)0); }
+
++#undef wins_nwstr
++int wins_nwstr(
++ WINDOW *win,
++ const wchar_t *wstr,
++ int n)
++ { return(*(int *)0); }
++
+ /* ./widechar/lib_inwstr.c */
+
+ #undef winnwstr
+ int winnwstr(
+- WINDOW *win,
+- wchar_t *wstr,
++ WINDOW *win,
++ wchar_t *wstr,
+ int n)
+ { return(*(int *)0); }
+
+ #undef winwstr
+ int winwstr(
+- WINDOW *win,
+- wchar_t *wstr)
++ WINDOW *win,
++ wchar_t *wstr)
++ { return(*(int *)0); }
++
++/* ./widechar/lib_slk_wset.c */
++
++#undef slk_wset
++int slk_wset(
++ int i,
++ const wchar_t *astr,
++ int format)
+ { return(*(int *)0); }
+
+ /* ./widechar/lib_unget_wch.c */
+@@ -2590,17 +2630,17 @@
+
+ #undef vid_puts
+ int vid_puts(
+- attr_t newmode,
+- short pair,
+- void *opts,
++ attr_t newmode,
++ short pair,
++ void *opts,
+ int (*outc)(
+ int p1))
+ { return(*(int *)0); }
+
+ #undef vid_attr
+ int vid_attr(
+- attr_t newmode,
+- short pair,
++ attr_t newmode,
++ short pair,
+ void *opts)
+ { return(*(int *)0); }
+
+@@ -2612,8 +2652,8 @@
+
+ #undef wvline_set
+ int wvline_set(
+- WINDOW *win,
+- const cchar_t *ch,
++ WINDOW *win,
++ const cchar_t *ch,
+ int n)
+ { return(*(int *)0); }
+
+@@ -2629,7 +2669,7 @@
+ /* ./widechar/lib_wunctrl.c */
+
+ #undef wunctrl
+-wchar_t *wunctrl(
++wchar_t *wunctrl(
+ cchar_t *wc)
+ { return(*(wchar_t **)0); }
+
+@@ -2637,7 +2677,7 @@
+
+ #undef define_key
+ int define_key(
+- char *str,
++ const char *str,
+ int keycode)
+ { return(*(int *)0); }
+
+@@ -2645,13 +2685,13 @@
+
+ #undef _nc_toggle_attr_on
+ void _nc_toggle_attr_on(
+- attr_t *S,
++ attr_t *S,
+ attr_t at)
+ { /* void */ }
+
+ #undef _nc_toggle_attr_off
+ void _nc_toggle_attr_off(
+- attr_t *S,
++ attr_t *S,
+ attr_t at)
+ { /* void */ }
+
+@@ -2670,11 +2710,18 @@
+ chtype c)
+ { /* void */ }
+
++/* ./base/key_defined.c */
++
++#undef key_defined
++int key_defined(
++ const char *str)
++ { return(*(int *)0); }
++
+ /* ./base/keybound.c */
+
+ #undef keybound
+ char *keybound(
+- int code,
++ int code,
+ int count)
+ { return(*(char **)0); }
+
+@@ -2682,7 +2729,7 @@
+
+ #undef keyok
+ int keyok(
+- int c,
++ int c,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -2694,23 +2741,15 @@
+
+ #undef assume_default_colors
+ int assume_default_colors(
+- int fg,
++ int fg,
+ int bg)
+ { return(*(int *)0); }
+
+-/* ./base/lib_freeall.c */
+-
+-#include <term_entry.h>
+-
+-#undef _nc_freeall
+-void _nc_freeall(void)
+- { /* void */ }
+-
+ /* ./tinfo/lib_print.c */
+
+ #undef mcprint
+ int mcprint(
+- char *data,
++ char *data,
+ int len)
+ { return(*(int *)0); }
+
+@@ -2718,19 +2757,19 @@
+
+ #undef is_term_resized
+ NCURSES_BOOL is_term_resized(
+- int ToLines,
++ int ToLines,
+ int ToCols)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef resize_term
+ int resize_term(
+- int ToLines,
++ int ToLines,
+ int ToCols)
+ { return(*(int *)0); }
+
+ #undef resizeterm
+ int resizeterm(
+- int ToLines,
++ int ToLines,
+ int ToCols)
+ { return(*(int *)0); }
+
+@@ -2745,22 +2784,22 @@
+
+ #undef _nc_expand_try
+ char *_nc_expand_try(
+- struct tries *tree,
+- unsigned short code,
+- int *count,
++ struct tries *tree,
++ unsigned short code,
++ int *count,
+ size_t len)
+ { return(*(char **)0); }
+
+ #undef _nc_remove_key
+ int _nc_remove_key(
+- struct tries **tree,
++ struct tries **tree,
+ unsigned short code)
+ { return(*(int *)0); }
+
+ #undef _nc_remove_string
+ int _nc_remove_string(
+- struct tries **tree,
+- char *string)
++ struct tries **tree,
++ const char *string)
+ { return(*(int *)0); }
+
+ /* ./base/version.c */
+@@ -2773,8 +2812,8 @@
+
+ #undef wresize
+ int wresize(
+- WINDOW *win,
+- int ToLines,
++ WINDOW *win,
++ int ToLines,
+ int ToCols)
+ { return(*(int *)0); }
+
+@@ -2785,6 +2824,11 @@
+ char *path)
+ { return(*(char **)0); }
+
++#undef _nc_pathlast
++unsigned _nc_pathlast(
++ const char *path)
++ { return(*(unsigned *)0); }
++
+ #undef _nc_basename
+ char *_nc_basename(
+ char *path)
+@@ -2792,7 +2836,7 @@
+
+ #undef _nc_access
+ int _nc_access(
+- const char *path,
++ const char *path,
+ int mode)
+ { return(*(int *)0); }
+
+@@ -2804,8 +2848,8 @@
+
+ #undef _nc_add_to_try
+ void _nc_add_to_try(
+- struct tries **tree,
+- const char *str,
++ struct tries **tree,
++ const char *str,
+ unsigned short code)
+ { /* void */ }
+
+@@ -2828,13 +2872,13 @@
+
+ #undef _nc_wrap_entry
+ void _nc_wrap_entry(
+- ENTRY *const ep,
++ ENTRY *const ep,
+ NCURSES_BOOL copy_strings)
+ { /* void */ }
+
+ #undef _nc_merge_entry
+ void _nc_merge_entry(
+- TERMTYPE *const to,
++ TERMTYPE *const to,
+ TERMTYPE *const from)
+ { /* void */ }
+
+@@ -2842,13 +2886,13 @@
+
+ #undef _nc_align_termtype
+ void _nc_align_termtype(
+- TERMTYPE *to,
++ TERMTYPE *to,
+ TERMTYPE *from)
+ { /* void */ }
+
+ #undef _nc_copy_termtype
+ void _nc_copy_termtype(
+- TERMTYPE *dst,
++ TERMTYPE *dst,
+ TERMTYPE *src)
+ { /* void */ }
+
+@@ -2856,15 +2900,15 @@
+
+ #undef _nc_captoinfo
+ char *_nc_captoinfo(
+- const char *cap,
+- const char *s,
++ const char *cap,
++ const char *s,
+ int const parametrized)
+ { return(*(char **)0); }
+
+ #undef _nc_infotocap
+ char *_nc_infotocap(
+- const char *cap,
+- const char *str,
++ const char *cap,
++ const char *str,
+ int const parametrized)
+ { return(*(char **)0); }
+
+@@ -2926,19 +2970,19 @@
+
+ #undef _nc_warning
+ void _nc_warning(
+- const char *const fmt,
++ const char *const fmt,
+ ...)
+ { /* void */ }
+
+ #undef _nc_err_abort
+ void _nc_err_abort(
+- const char *const fmt,
++ const char *const fmt,
+ ...)
+ { /* void */ }
+
+ #undef _nc_syserr_abort
+ void _nc_syserr_abort(
+- const char *const fmt,
++ const char *const fmt,
+ ...)
+ { /* void */ }
+
+@@ -2946,8 +2990,8 @@
+
+ #undef _nc_tic_expand
+ char *_nc_tic_expand(
+- const char *srcp,
+- NCURSES_BOOL tic_format,
++ const char *srcp,
++ NCURSES_BOOL tic_format,
+ int numbers)
+ { return(*(char **)0); }
+
+@@ -2957,14 +3001,14 @@
+
+ #undef _nc_find_entry
+ struct name_table_entry const *_nc_find_entry(
+- const char *string,
++ const char *string,
+ const struct name_table_entry *const *hash_table)
+ { return(*(struct name_table_entry const **)0); }
+
+ #undef _nc_find_type_entry
+ struct name_table_entry const *_nc_find_type_entry(
+- const char *string,
+- int type,
++ const char *string,
++ int type,
+ const struct name_table_entry *table)
+ { return(*(struct name_table_entry const **)0); }
+
+@@ -2985,16 +3029,16 @@
+
+ #undef _nc_entry_match
+ NCURSES_BOOL _nc_entry_match(
+- char *n1,
++ 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,
++ FILE *fp,
++ char *buf,
++ int literal,
++ NCURSES_BOOL silent,
+ NCURSES_BOOL (*hook)(
+ ENTRY *p1))
+ { /* void */ }
+@@ -3028,7 +3072,7 @@
+
+ #undef _nc_trans_string
+ char _nc_trans_string(
+- char *ptr,
++ char *ptr,
+ char *last)
+ { return(*(char *)0); }
+
+@@ -3044,7 +3088,7 @@
+
+ #undef _nc_reset_input
+ void _nc_reset_input(
+- FILE *fp,
++ FILE *fp,
+ char *buf)
+ { /* void */ }
+
+@@ -3052,7 +3096,7 @@
+
+ #undef _nc_doalloc
+ void *_nc_doalloc(
+- void *oldp,
++ void *oldp,
+ size_t amount)
+ { return(*(void **)0); }
+
+@@ -3120,8 +3164,8 @@
+ #include <termcap.h>
+
+ struct speed {
+- int s;
+- int sp;
++ int s;
++ int sp;
+ };
+
+ #undef _nc_baudrate
+@@ -3202,7 +3246,7 @@
+
+ #undef key_name
+ char *key_name(
+- wchar_t c)
++ wchar_t c)
+ { return(*(char **)0); }
+
+ /* ./tinfo/lib_longname.c */
+@@ -3224,13 +3268,13 @@
+
+ #undef idlok
+ int idlok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+ #undef idcok
+ void idcok(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { /* void */ }
+
+@@ -3241,31 +3285,31 @@
+
+ #undef nodelay
+ int nodelay(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+ #undef notimeout
+ int notimeout(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL f)
+ { return(*(int *)0); }
+
+ #undef wtimeout
+ void wtimeout(
+- WINDOW *win,
++ WINDOW *win,
+ int delay)
+ { /* void */ }
+
+ #undef keypad
+ int keypad(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+ #undef meta
+ int meta(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -3317,7 +3361,7 @@
+
+ #undef intrflush
+ int intrflush(
+- WINDOW *win,
++ WINDOW *win,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+@@ -3325,11 +3369,8 @@
+
+ #include <sys/ioctl.h>
+
+-#undef use_env
+-void use_env(
+- NCURSES_BOOL f)
+- { /* void */ }
+-
++#undef ttytype
++char ttytype[256 ];
+ #undef LINES
+ int LINES;
+ #undef COLS
+@@ -3337,17 +3378,31 @@
+ #undef TABSIZE
+ int TABSIZE;
+
++#undef use_env
++void use_env(
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef _nc_update_screensize
+ void _nc_update_screensize(void)
+ { /* void */ }
+
+-#undef ttytype
+-char ttytype[256 ];
++#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(void)
++ { return(*(int *)0); }
+
+ #undef setupterm
+ int setupterm(
+- char *tname,
+- int Filedes,
++ char *tname,
++ int Filedes,
+ int *errret)
+ { return(*(int *)0); }
+
+@@ -3360,7 +3415,7 @@
+
+ #undef tgetent
+ int tgetent(
+- char *bufp,
++ char *bufp,
+ const char *name)
+ { return(*(int *)0); }
+
+@@ -3382,7 +3437,7 @@
+
+ #undef tgetstr
+ char *tgetstr(
+- char *id,
++ char *id,
+ char **area)
+ { return(*(char **)0); }
+
+@@ -3396,8 +3451,8 @@
+
+ #undef tgoto
+ char *tgoto(
+- const char *string,
+- int x,
++ const char *string,
++ int x,
+ int y)
+ { return(*(char **)0); }
+
+@@ -3431,9 +3486,16 @@
+ #undef _nc_tparm_err
+ int _nc_tparm_err;
+
++#undef _nc_tparm_analyze
++int _nc_tparm_analyze(
++ const char *string,
++ char *p_is_s[9 ],
++ int *popcount)
++ { return(*(int *)0); }
++
+ #undef tparm
+ char *tparm(
+- char *string,
++ char *string,
+ ...)
+ { return(*(char **)0); }
+
+@@ -3467,8 +3529,8 @@
+
+ #undef tputs
+ int tputs(
+- const char *string,
+- int affcnt,
++ const char *string,
++ int affcnt,
+ int (*outc)(
+ int p1))
+ { return(*(int *)0); }
+@@ -3489,15 +3551,25 @@
+
+ #undef _tracef
+ void _tracef(
+- const char *fmt,
++ const char *fmt,
+ ...)
+ { /* void */ }
+
++#undef _nc_retrace_bool
++NCURSES_BOOL _nc_retrace_bool(
++ NCURSES_BOOL code)
++ { return(*(NCURSES_BOOL *)0); }
++
+ #undef _nc_retrace_int
+ int _nc_retrace_int(
+ int code)
+ { return(*(int *)0); }
+
++#undef _nc_retrace_unsigned
++unsigned _nc_retrace_unsigned(
++ unsigned code)
++ { return(*(unsigned *)0); }
++
+ #undef _nc_retrace_ptr
+ char *_nc_retrace_ptr(
+ char *code)
+@@ -3576,8 +3648,8 @@
+
+ #undef _nc_timed_wait
+ int _nc_timed_wait(
+- int mode,
+- int milliseconds,
++ int mode,
++ int milliseconds,
+ int *timeleft)
+ { return(*(int *)0); }
+
+@@ -3590,8 +3662,8 @@
+
+ #undef _nc_name_match
+ int _nc_name_match(
+- const char *const namelst,
+- const char *const name,
++ const char *const namelst,
++ const char *const name,
+ const char *const delim)
+ { return(*(int *)0); }
+
+@@ -3614,14 +3686,14 @@
+
+ #undef _nc_parse_entry
+ int _nc_parse_entry(
+- struct entry *entryp,
+- int literal,
++ struct entry *entryp,
++ int literal,
+ NCURSES_BOOL silent)
+ { return(*(int *)0); }
+
+ #undef _nc_capcmp
+ int _nc_capcmp(
+- const char *s,
++ const char *s,
+ const char *t)
+ { return(*(int *)0); }
+
+@@ -3644,14 +3716,14 @@
+
+ #undef _nc_read_file_entry
+ int _nc_read_file_entry(
+- const char *const filename,
++ const char *const filename,
+ TERMTYPE *ptr)
+ { return(*(int *)0); }
+
+ #undef _nc_read_entry
+ int _nc_read_entry(
+- const char *const tn,
+- char *const filename,
++ const char *const tn,
++ char *const filename,
+ TERMTYPE *const tp)
+ { return(*(int *)0); }
+
+@@ -3659,7 +3731,7 @@
+
+ #undef _nc_read_termcap_entry
+ int _nc_read_termcap_entry(
+- const char *const tn,
++ const char *const tn,
+ TERMTYPE *const tp)
+ { return(*(int *)0); }
+
+@@ -3667,7 +3739,7 @@
+
+ #undef _nc_set_buffer
+ void _nc_set_buffer(
+- FILE *ofp,
++ FILE *ofp,
+ NCURSES_BOOL buffered)
+ { /* void */ }
+
+@@ -3675,32 +3747,32 @@
+
+ #undef _nc_str_init
+ string_desc *_nc_str_init(
+- string_desc *dst,
+- char *src,
++ string_desc *dst,
++ char *src,
+ size_t len)
+ { return(*(string_desc **)0); }
+
+ #undef _nc_str_null
+ string_desc *_nc_str_null(
+- string_desc *dst,
++ string_desc *dst,
+ size_t len)
+ { return(*(string_desc **)0); }
+
+ #undef _nc_str_copy
+ string_desc *_nc_str_copy(
+- string_desc *dst,
++ string_desc *dst,
+ string_desc *src)
+ { return(*(string_desc **)0); }
+
+ #undef _nc_safe_strcat
+ NCURSES_BOOL _nc_safe_strcat(
+- string_desc *dst,
++ string_desc *dst,
+ const char *src)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef _nc_safe_strcpy
+ NCURSES_BOOL _nc_safe_strcpy(
+- string_desc *dst,
++ string_desc *dst,
+ const char *src)
+ { return(*(NCURSES_BOOL *)0); }
+
+@@ -3713,10 +3785,16 @@
+
+ #undef _nc_trace_buf
+ char *_nc_trace_buf(
+- int bufnum,
++ 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
+@@ -3735,7 +3813,7 @@
+
+ #undef _nc_visbuf2
+ const char *_nc_visbuf2(
+- int bufnum,
++ int bufnum,
+ const char *buf)
+ { return(*(const char **)0); }
+
+@@ -3744,9 +3822,15 @@
+ 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,
++ int bufnum,
+ const wchar_t *buf)
+ { return(*(const char **)0); }
+
+@@ -3755,16 +3839,22 @@
+ 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_viscbuf2
+ const char *_nc_viscbuf2(
+- int bufnum,
+- const cchar_t *buf,
++ int bufnum,
++ const cchar_t *buf,
+ int len)
+ { return(*(const char **)0); }
+
+ #undef _nc_viscbuf
+ const char *_nc_viscbuf(
+- const cchar_t *buf,
++ const cchar_t *buf,
+ int len)
+ { return(*(const char **)0); }
+
+diff -urNd -urNd ncurses-5.3/ncurses/modules ncurses-5.3.20030906.orig/ncurses/modules
+--- ncurses-5.3/ncurses/modules Sat May 11 15:14:41 2002
++++ ncurses-5.3.20030906.orig/ncurses/modules Sun Jul 20 14:02:09 2003
+@@ -1,4 +1,4 @@
+-# $Id: modules,v 1.90 2002/05/11 20:14:41 tom Exp $
++# $Id: modules,v 1.96 2003/07/05 16:01:45 tom Exp $
+ ##############################################################################
+ # Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. #
+ # #
+@@ -61,7 +61,6 @@
+ lib_initscr lib $(base) $(INCDIR)/tic.h
+ lib_insch lib $(base)
+ lib_insdel lib $(base)
+-lib_insstr lib $(base)
+ lib_instr lib $(base)
+ lib_isendwin lib $(base)
+ lib_leaveok lib $(base)
+@@ -120,8 +119,12 @@
+ sigaction lib $(base)
+ vsscanf lib $(base)
+
++# actually an extension, but with its own configure option (--disable-leaks)
++lib_freeall lib $(base)
++
+ # XSI extensions to the base library (wide-character)
+ @ widechar
++charable lib $(wide)
+ lib_box_set lib $(wide)
+ lib_cchar lib $(wide)
+ lib_get_wch lib $(wide)
+@@ -130,9 +133,9 @@
+ lib_hline_set lib $(wide)
+ lib_in_wch lib $(wide)
+ lib_in_wchnstr lib $(wide)
+-lib_ins_nwstr lib $(wide)
+ lib_ins_wch lib $(wide)
+ lib_inwstr lib $(wide)
++lib_slk_wset lib $(wide)
+ lib_unget_wch lib $(wide)
+ lib_vid_attr lib $(wide) ../include/term.h
+ lib_vline_set lib $(wide)
+@@ -143,10 +146,10 @@
+ @ ext_funcs
+ define_key lib $(base)
+ expanded lib .
++key_defined lib $(base)
+ keybound lib $(base)
+ keyok lib $(base)
+ lib_dft_fgbg lib $(base) ../include/term.h
+-lib_freeall lib $(base)
+ lib_print lib $(tinfo) ../include/term.h
+ resizeterm lib $(base) ../include/term.h
+ trace_xnames lib $(trace) ../include/term.h $(INCDIR)/term_entry.h
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/MKkeys_list.sh ncurses-5.3.20030906.orig/ncurses/tinfo/MKkeys_list.sh
+--- ncurses-5.3/ncurses/tinfo/MKkeys_list.sh Sat Jun 16 11:50:35 2001
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/MKkeys_list.sh Tue May 13 20:08:22 2003
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+-# $Id: MKkeys_list.sh,v 1.2 2001/06/16 16:50:35 tom Exp $
++# $Id: MKkeys_list.sh,v 1.3 2003/01/11 22:24:53 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2001 Free Software Foundation, Inc. #
++# Copyright (c) 2001,2003 Free 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"), #
+@@ -39,7 +39,7 @@
+
+ data=data$$
+ trap 'rm -f $data' 0 1 2 5 15
+-sed -e 's/[ ]\+/ /g' < $DATA >$data
++sed -e 's/[ ][ ]*/ /g' < $DATA >$data
+
+ cat <<EOF
+ # These definitions were generated by $0 $DATA
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/access.c ncurses-5.3.20030906.orig/ncurses/tinfo/access.c
+--- ncurses-5.3/ncurses/tinfo/access.c Sat Jun 23 17:11:49 2001
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/access.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998,2001,2003 Free 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 <tic.h>
+ #include <nc_alloc.h>
+
+-MODULE_ID("$Id: access.c,v 1.9 2001/06/23 22:11:49 tom Exp $")
++MODULE_ID("$Id: access.c,v 1.10 2003/07/05 19:31:28 tom Exp $")
+
+ #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+
+@@ -64,19 +64,28 @@
+ return result;
+ }
+
+-NCURSES_EXPORT(char *)
+-_nc_basename(char *path)
++/*
++ * Return index of the basename
++ */
++NCURSES_EXPORT(unsigned)
++_nc_pathlast(const char *path)
+ {
+- char *result = strrchr(path, '/');
++ const char *test = strrchr(path, '/');
+ #ifdef __EMX__
+- if (result == 0)
+- result = strrchr(path, '\\');
++ if (test == 0)
++ test = strrchr(path, '\\');
+ #endif
+- if (result == 0)
+- result = path;
++ if (test == 0)
++ test = path;
+ else
+- result++;
+- return result;
++ test++;
++ return (test - path);
++}
++
++NCURSES_EXPORT(char *)
++_nc_basename(char *path)
++{
++ return path + _nc_pathlast(path);
+ }
+
+ NCURSES_EXPORT(int)
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/alloc_entry.c ncurses-5.3.20030906.orig/ncurses/tinfo/alloc_entry.c
+--- ncurses-5.3/ncurses/tinfo/alloc_entry.c Sat Sep 7 15:04:15 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/alloc_entry.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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>
+ #include <term_entry.h>
+
+-MODULE_ID("$Id: alloc_entry.c,v 1.37 2002/09/07 20:04:15 tom Exp $")
++MODULE_ID("$Id: alloc_entry.c,v 1.38 2003/05/24 21:10:28 tom Exp $")
+
+ #define ABSENT_OFFSET -1
+ #define CANCELLED_OFFSET -2
+@@ -61,10 +61,10 @@
+ _nc_init_entry(TERMTYPE * const tp)
+ /* initialize a terminal type data block */
+ {
+- int i;
++ unsigned i;
+
+ if (stringbuf == 0)
+- stringbuf = malloc(MAX_STRTAB);
++ stringbuf = (char *) malloc(MAX_STRTAB);
+
+ #if NCURSES_XNAMES
+ tp->num_Booleans = BOOLCOUNT;
+@@ -126,7 +126,8 @@
+ /* copy the string parts to allocated storage, preserving pointers to it */
+ {
+ int offsets[MAX_ENTRY_SIZE / 2], useoffsets[MAX_USES];
+- int i, n;
++ unsigned i, n;
++ unsigned nuses = ep->nuses;
+ TERMTYPE *tp = &(ep->tterm);
+
+ if (copy_strings) {
+@@ -141,7 +142,7 @@
+ }
+ }
+
+- for (i = 0; i < ep->nuses; i++) {
++ for (i = 0; i < nuses; i++) {
+ if (ep->uses[i].name == 0) {
+ ep->uses[i].name = _nc_save_str(ep->uses[i].name);
+ }
+@@ -160,7 +161,7 @@
+ offsets[i] = tp->Strings[i] - stringbuf;
+ }
+
+- for (i = 0; i < ep->nuses; i++) {
++ for (i = 0; i < nuses; i++) {
+ if (ep->uses[i].name == 0)
+ useoffsets[i] = ABSENT_OFFSET;
+ else
+@@ -200,7 +201,7 @@
+ }
+ #endif
+
+- for (i = 0; i < ep->nuses; i++) {
++ for (i = 0; i < nuses; i++) {
+ if (useoffsets[i] == ABSENT_OFFSET)
+ ep->uses[i].name = 0;
+ else
+@@ -209,11 +210,10 @@
+ }
+
+ NCURSES_EXPORT(void)
+-_nc_merge_entry
+-(TERMTYPE * const to, TERMTYPE * const from)
++_nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from)
+ /* merge capabilities from `from' entry into `to' entry */
+ {
+- int i;
++ unsigned i;
+
+ #if NCURSES_XNAMES
+ _nc_align_termtype(to, from);
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/alloc_ttype.c ncurses-5.3.20030906.orig/ncurses/tinfo/alloc_ttype.c
+--- ncurses-5.3/ncurses/tinfo/alloc_ttype.c Sat Sep 28 10:28:43 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/alloc_ttype.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -43,7 +43,7 @@
+ #include <tic.h>
+ #include <term_entry.h>
+
+-MODULE_ID("$Id: alloc_ttype.c,v 1.13 2002/09/28 15:28:43 tom Exp $")
++MODULE_ID("$Id: alloc_ttype.c,v 1.14 2003/05/24 21:10:28 tom Exp $")
+
+ #if NCURSES_XNAMES
+ /*
+@@ -92,8 +92,10 @@
+ }
+
+ static void
+-realign_data(TERMTYPE * to, char **ext_Names, int ext_Booleans, int
+- ext_Numbers, int ext_Strings)
++realign_data(TERMTYPE * to, char **ext_Names,
++ int ext_Booleans,
++ int ext_Numbers,
++ int ext_Strings)
+ {
+ int n, m, base;
+ int limit = (to->ext_Booleans + to->ext_Numbers + to->ext_Strings);
+@@ -371,8 +373,7 @@
+ }
+
+ NCURSES_EXPORT(void)
+-_nc_align_termtype
+-(TERMTYPE * to, TERMTYPE * from)
++_nc_align_termtype(TERMTYPE * to, TERMTYPE * from)
+ {
+ int na = NUM_EXT_NAMES(to);
+ int nb = NUM_EXT_NAMES(from);
+@@ -457,10 +458,9 @@
+ #endif
+
+ NCURSES_EXPORT(void)
+-_nc_copy_termtype
+-(TERMTYPE * dst, TERMTYPE * src)
++_nc_copy_termtype(TERMTYPE * dst, TERMTYPE * src)
+ {
+- int i;
++ unsigned i;
+
+ *dst = *src; /* ...to copy the sizes and string-tables */
+ dst->Booleans = typeMalloc(char, NUM_BOOLEANS(dst));
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/comp_parse.c ncurses-5.3.20030906.orig/ncurses/tinfo/comp_parse.c
+--- ncurses-5.3/ncurses/tinfo/comp_parse.c Sat Sep 7 15:01:28 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/comp_parse.c Fri Sep 12 16:41:41 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -52,7 +52,7 @@
+ #include <tic.h>
+ #include <term_entry.h>
+
+-MODULE_ID("$Id: comp_parse.c,v 1.53 2002/09/07 20:01:28 tom Exp $")
++MODULE_ID("$Id: comp_parse.c,v 1.55 2003/08/02 23:53:42 tom Exp $")
+
+ static void sanity_check(TERMTYPE *);
+ NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
+@@ -163,7 +163,7 @@
+ ****************************************************************************/
+
+ NCURSES_EXPORT(void)
+-_nc_read_entry_source(FILE * fp, char *buf,
++_nc_read_entry_source(FILE *fp, char *buf,
+ int literal, bool silent,
+ bool(*hook) (ENTRY *))
+ /* slurp all entries in the given file into core */
+@@ -216,7 +216,8 @@
+ {
+ ENTRY *qp, *rp, *lastread = 0;
+ bool keepgoing;
+- int i, j, unresolved, total_unresolved, multiples;
++ int i, unresolved, total_unresolved, multiples;
++ unsigned j;
+
+ DEBUG(2, ("RESOLUTION BEGINNING"));
+
+@@ -397,7 +398,7 @@
+ */
+ for_entry_list(qp) {
+ for_each_boolean(j, &(qp->tterm)) {
+- if ((int) qp->tterm.Booleans[j] == CANCELLED_BOOLEAN)
++ if (qp->tterm.Booleans[j] == CANCELLED_BOOLEAN)
+ qp->tterm.Booleans[j] = ABSENT_BOOLEAN;
+ }
+ for_each_number(j, &(qp->tterm)) {
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/comp_scan.c ncurses-5.3.20030906.orig/ncurses/tinfo/comp_scan.c
+--- ncurses-5.3/ncurses/tinfo/comp_scan.c Sat Sep 7 15:04:09 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/comp_scan.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 <term_entry.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: comp_scan.c,v 1.61 2002/09/07 20:04:09 tom Exp $")
++MODULE_ID("$Id: comp_scan.c,v 1.64 2003/05/31 23:27:20 tom Exp $")
+
+ /*
+ * Maximum length of string capability we'll accept before raising an error.
+@@ -93,10 +93,10 @@
+ _nc_disable_period = FALSE; /* used by tic -a option */
+ #endif
+
++static bool end_of_stream(void);
+ static int last_char(void);
+ static int next_char(void);
+ static long stream_pos(void);
+-static bool end_of_stream(void);
+ static void push_back(char c);
+
+ /* Assume we may be looking at a termcap-style continuation */
+@@ -148,8 +148,11 @@
+ static const char terminfo_punct[] = "@%&*!#";
+ static char *buffer;
+
++ char *after_list;
++ char *after_name;
+ char *numchk;
+ char *ptr;
++ char *s;
+ char numbuf[80];
+ int ch;
+ int dot_flag = FALSE;
+@@ -173,8 +176,12 @@
+ return (retval);
+ }
+
+- if (end_of_stream())
++ if (end_of_stream()) {
++ if (buffer != 0) {
++ FreeAndNull(buffer);
++ }
+ return (EOF);
++ }
+
+ start_token:
+ token_start = stream_pos();
+@@ -227,17 +234,21 @@
+ *(ptr++) = ch;
+
+ if (first_column) {
+- char *desc;
+-
+ _nc_comment_start = token_start;
+ _nc_comment_end = _nc_curr_file_pos;
+ _nc_start_line = _nc_curr_line;
+
+ _nc_syntax = ERR;
++ after_name = 0;
++ after_list = 0;
+ while ((ch = next_char()) != '\n') {
+- if (ch == EOF)
++ if (ch == EOF) {
+ _nc_err_abort(MSG_NO_MEMORY);
+- else if (ch == ':' && last_char() != ',') {
++ } else if (ch == '|') {
++ after_list = ptr;
++ if (after_name == 0)
++ after_name = ptr;
++ } else if (ch == ':' && last_char() != ',') {
+ _nc_syntax = SYN_TERMCAP;
+ separator = ':';
+ break;
+@@ -245,14 +256,18 @@
+ _nc_syntax = SYN_TERMINFO;
+ separator = ',';
+ /*
+- * Fall-through here is not an accident. The idea is that
+- * if we see a comma, we figure this is terminfo unless we
+- * subsequently run into a colon -- but we don't stop
+- * looking for that colon until hitting a newline. This
++ * If we did not see a '|', then we found a name with no
++ * aliases or description.
++ */
++ 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.
+ */
+- /* FALLTHRU */
+ } else
+ ch = eat_escaped_newline(ch);
+
+@@ -277,53 +292,53 @@
+
+ /*
+ * This is the soonest we have the terminal name fetched. Set up
+- * for following warning messages.
++ * for following warning messages. If there's no '|', then there
++ * is no description.
+ */
+- ptr = strchr(buffer, '|');
+- if (ptr == (char *) NULL)
+- ptr = buffer + strlen(buffer);
+- ch = *ptr;
+- *ptr = '\0';
+- _nc_set_type(buffer);
+- *ptr = ch;
++ if (after_name != 0) {
++ ch = *after_name;
++ *after_name = '\0';
++ _nc_set_type(buffer);
++ *after_name = ch;
++ }
+
+ /*
+ * Compute the boundary between the aliases and the description
+ * field for syntax-checking purposes.
+ */
+- desc = strrchr(buffer, '|');
+- if (!silent && desc) {
+- if (*desc == '\0')
+- _nc_warning("empty longname field");
+- else if (strchr(desc, ' ') == (char *) NULL)
+- _nc_warning("older tic versions may treat the description field as an alias");
++ if (after_list != 0) {
++ if (!silent) {
++ if (*after_list == '\0')
++ _nc_warning("empty longname field");
++ else if (strchr(after_list, ' ') == 0)
++ _nc_warning("older tic versions may treat the description field as an alias");
++ }
++ } else {
++ after_list = buffer + strlen(buffer);
++ DEBUG(1, ("missing description"));
+ }
+- if (!desc)
+- desc = buffer + strlen(buffer);
+
+ /*
+ * Whitespace in a name field other than the long name can confuse
+ * rdist and some termcap tools. Slashes are a no-no. Other
+ * special characters can be dangerous due to shell expansion.
+ */
+- for (ptr = buffer; ptr < desc; ptr++) {
+- if (isspace(UChar(*ptr))) {
++ for (s = buffer; s < after_list; ++s) {
++ if (isspace(UChar(*s))) {
+ if (!silent)
+ _nc_warning("whitespace in name or alias field");
+ break;
+- } else if (*ptr == '/') {
++ } else if (*s == '/') {
+ if (!silent)
+ _nc_warning("slashes aren't allowed in names or aliases");
+ break;
+- } else if (strchr("$[]!*?", *ptr)) {
++ } else if (strchr("$[]!*?", *s)) {
+ if (!silent)
+- _nc_warning("dubious character `%c' in name or alias field", *ptr);
++ _nc_warning("dubious character `%c' in name or alias field", *s);
+ break;
+ }
+ }
+
+- ptr = buffer;
+-
+ _nc_curr_token.tk_name = buffer;
+ type = NAMES;
+ } else {
+@@ -684,7 +699,7 @@
+ */
+
+ NCURSES_EXPORT(void)
+-_nc_reset_input(FILE * fp, char *buf)
++_nc_reset_input(FILE *fp, char *buf)
+ {
+ pushtype = NO_PUSHBACK;
+ if (pushname != 0)
+@@ -766,7 +781,7 @@
+ if (used == 0)
+ _nc_curr_file_pos = ftell(yyin);
+
+- if (fgets(result + used, allocated - used, yyin) != NULL) {
++ if (fgets(result + used, allocated - used, yyin) != 0) {
+ bufstart = result;
+ if (used == 0) {
+ _nc_curr_line++;
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/free_ttype.c ncurses-5.3.20030906.orig/ncurses/tinfo/free_ttype.c
+--- ncurses-5.3/ncurses/tinfo/free_ttype.c Sun Sep 1 15:29:03 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/free_ttype.c Fri Sep 12 16:41:56 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2002,2003 Free 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,11 +43,43 @@
+ #include <tic.h>
+ #include <term_entry.h>
+
+-MODULE_ID("$Id: free_ttype.c,v 1.8 2002/09/01 20:29:03 tom Exp $")
++MODULE_ID("$Id: free_ttype.c,v 1.10 2003/08/09 21:22:03 tom Exp $")
+
+ NCURSES_EXPORT(void)
+ _nc_free_termtype(TERMTYPE * ptr)
+ {
++ T(("_nc_free_termtype(%s)", ptr->term_names));
++
++ if (ptr->str_table == 0
++ || (ptr->term_names < ptr->str_table
++ || ptr->term_names >= ptr->str_table + MAX_ENTRY_SIZE)) {
++ FreeIfNeeded(ptr->term_names);
++ }
++#if NO_LEAKS
++ else {
++ if (ptr->str_table != 0
++ && (ptr->term_names < ptr->str_table + MAX_ENTRY_SIZE)) {
++ int j;
++ char *last = ptr->str_table;
++ /*
++ * We should have saved the entry-size someplace. Too late,
++ * but this is useful for the memory-leak checking, though more
++ * work/time than should be in the normal library.
++ */
++ for (j = 0; j < NUM_STRINGS(ptr); j++) {
++ char *s = ptr->Strings[j];
++ if (VALID_STRING(s)) {
++ char *t = s + strlen(s) + 1;
++ if (t > last)
++ last = t;
++ }
++ }
++ if (last < ptr->term_names) {
++ FreeIfNeeded(ptr->term_names);
++ }
++ }
++ }
++#endif
+ FreeIfNeeded(ptr->str_table);
+ FreeIfNeeded(ptr->Booleans);
+ FreeIfNeeded(ptr->Numbers);
+@@ -66,7 +98,9 @@
+ use_extended_names(bool flag)
+ {
+ int oldflag = _nc_user_definable;
++
++ T((T_CALLED("use_extended_names(%d)"), flag));
+ _nc_user_definable = flag;
+- return oldflag;
++ returnBool(oldflag);
+ }
+ #endif
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_acs.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_acs.c
+--- ncurses-5.3/ncurses/tinfo/lib_acs.c Sun Sep 1 14:26:57 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_acs.c Tue May 13 20:08:22 2003
+@@ -34,7 +34,7 @@
+ #include <curses.priv.h>
+ #include <term.h> /* ena_acs, acs_chars */
+
+-MODULE_ID("$Id: lib_acs.c,v 1.22 2002/09/01 19:26:57 tom Exp $")
++MODULE_ID("$Id: lib_acs.c,v 1.25 2002/12/28 16:26:46 tom Exp $")
+
+ #if BROKEN_LINKER
+ NCURSES_EXPORT_VAR(chtype *)
+@@ -55,101 +55,88 @@
+ NCURSES_EXPORT(void)
+ _nc_init_acs(void)
+ {
++ chtype *fake_map = acs_map;
++ chtype *real_map = SP != 0 ? SP->_acs_map : fake_map;
++ int j;
++
+ T(("initializing ACS map"));
+-#if !BROKEN_LINKER
+- memset(acs_map, 0, sizeof(acs_map));
+-#endif
++
++ /*
++ * If we're using this from curses (rather than terminfo), we are storing
++ * the mapping information in the SCREEN struct so we can decide how to
++ * render it.
++ */
++ if (real_map != fake_map) {
++ for (j = 1; j < ACS_LEN; ++j) {
++ real_map[j] = 0;
++ fake_map[j] = A_ALTCHARSET | j;
++ }
++ } else {
++ for (j = 1; j < ACS_LEN; ++j) {
++ real_map[j] = 0;
++ }
++ }
+
+ /*
+ * Initializations for a UNIX-like multi-terminal environment. Use
+ * ASCII chars and count on the terminfo description to do better.
+ */
+- ACS_ULCORNER = '+'; /* should be upper left corner */
+- ACS_LLCORNER = '+'; /* should be lower left corner */
+- ACS_URCORNER = '+'; /* should be upper right corner */
+- ACS_LRCORNER = '+'; /* should be lower right corner */
+- ACS_RTEE = '+'; /* should be tee pointing left */
+- ACS_LTEE = '+'; /* should be tee pointing right */
+- ACS_BTEE = '+'; /* should be tee pointing up */
+- ACS_TTEE = '+'; /* should be tee pointing down */
+- ACS_HLINE = '-'; /* should be horizontal line */
+- ACS_VLINE = '|'; /* should be vertical line */
+- ACS_PLUS = '+'; /* should be large plus or crossover */
+- ACS_S1 = '~'; /* should be scan line 1 */
+- ACS_S9 = '_'; /* should be scan line 9 */
+- ACS_DIAMOND = '+'; /* should be diamond */
+- ACS_CKBOARD = ':'; /* should be checker board (stipple) */
+- ACS_DEGREE = '\''; /* should be degree symbol */
+- ACS_PLMINUS = '#'; /* should be plus/minus */
+- ACS_BULLET = 'o'; /* should be bullet */
+- ACS_LARROW = '<'; /* should be arrow pointing left */
+- ACS_RARROW = '>'; /* should be arrow pointing right */
+- ACS_DARROW = 'v'; /* should be arrow pointing down */
+- ACS_UARROW = '^'; /* should be arrow pointing up */
+- ACS_BOARD = '#'; /* should be board of squares */
+- ACS_LANTERN = '#'; /* should be lantern symbol */
+- ACS_BLOCK = '#'; /* should be solid square block */
++ real_map['l'] = '+'; /* should be upper left corner */
++ real_map['m'] = '+'; /* should be lower left corner */
++ real_map['k'] = '+'; /* should be upper right corner */
++ real_map['j'] = '+'; /* should be lower right corner */
++ real_map['u'] = '+'; /* should be tee pointing left */
++ real_map['t'] = '+'; /* should be tee pointing right */
++ real_map['v'] = '+'; /* should be tee pointing up */
++ real_map['w'] = '+'; /* should be tee pointing down */
++ real_map['q'] = '-'; /* should be horizontal line */
++ real_map['x'] = '|'; /* should be vertical line */
++ real_map['n'] = '+'; /* should be large plus or crossover */
++ real_map['o'] = '~'; /* should be scan line 1 */
++ real_map['s'] = '_'; /* should be scan line 9 */
++ real_map['`'] = '+'; /* should be diamond */
++ real_map['a'] = ':'; /* should be checker board (stipple) */
++ real_map['f'] = '\''; /* should be degree symbol */
++ real_map['g'] = '#'; /* should be plus/minus */
++ real_map['~'] = 'o'; /* should be bullet */
++ real_map[','] = '<'; /* should be arrow pointing left */
++ real_map['+'] = '>'; /* should be arrow pointing right */
++ real_map['.'] = 'v'; /* should be arrow pointing down */
++ real_map['-'] = '^'; /* should be arrow pointing up */
++ real_map['h'] = '#'; /* should be board of squares */
++ real_map['i'] = '#'; /* should be lantern symbol */
++ real_map['0'] = '#'; /* should be solid square block */
+ /* these defaults were invented for ncurses */
+- ACS_S3 = '-'; /* should be scan line 3 */
+- ACS_S7 = '-'; /* should be scan line 7 */
+- ACS_LEQUAL = '<'; /* should be less-than-or-equal-to */
+- ACS_GEQUAL = '>'; /* should be greater-than-or-equal-to */
+- ACS_PI = '*'; /* should be greek pi */
+- ACS_NEQUAL = '!'; /* should be not-equal */
+- ACS_STERLING = 'f'; /* should be pound-sterling symbol */
++ real_map['p'] = '-'; /* should be scan line 3 */
++ real_map['r'] = '-'; /* should be scan line 7 */
++ real_map['y'] = '<'; /* should be less-than-or-equal-to */
++ real_map['z'] = '>'; /* should be greater-than-or-equal-to */
++ real_map['{'] = '*'; /* should be greek pi */
++ real_map['|'] = '!'; /* should be not-equal */
++ real_map['}'] = 'f'; /* should be pound-sterling symbol */
++
++#if !USE_WIDEC_SUPPORT
++ if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
++ acs_chars = NULL;
++ ena_acs = NULL;
++ }
++#endif
+
+ if (ena_acs != NULL) {
+ TPUTS_TRACE("ena_acs");
+ putp(ena_acs);
+ }
+-#define ALTCHAR(c) ((chtype)(((unsigned char)(c)) | A_ALTCHARSET))
+
+ if (acs_chars != NULL) {
+ size_t i = 0;
+ size_t length = strlen(acs_chars);
+
+- while (i < length)
+- switch (acs_chars[i]) {
+- case 'l':
+- case 'm':
+- case 'k':
+- case 'j':
+- case 'u':
+- case 't':
+- case 'v':
+- case 'w':
+- case 'q':
+- case 'x':
+- case 'n':
+- case 'o':
+- case 's':
+- case '`':
+- case 'a':
+- case 'f':
+- case 'g':
+- case '~':
+- case ',':
+- case '+':
+- case '.':
+- case '-':
+- case 'h':
+- case 'i':
+- case '0':
+- case 'p':
+- case 'r':
+- case 'y':
+- case 'z':
+- case '{':
+- case '|':
+- case '}':
+- acs_map[(unsigned int) acs_chars[i]] =
+- ALTCHAR(acs_chars[i + 1]);
+- i++;
+- /* FALLTHRU */
+- default:
+- i++;
+- break;
++ while (i + 1 < length) {
++ if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) {
++ real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET;
+ }
++ i += 2;
++ }
+ }
+ #ifdef TRACE
+ /* Show the equivalent mapping, noting if it does not match the
+@@ -159,9 +146,9 @@
+ size_t n, m;
+ char show[ACS_LEN + 1];
+ for (n = 1, m = 0; n < ACS_LEN; n++) {
+- if (acs_map[n] != 0) {
++ if (real_map[n] != 0) {
+ show[m++] = (char) n;
+- show[m++] = ChCharOf(acs_map[n]);
++ show[m++] = ChCharOf(real_map[n]);
+ }
+ }
+ show[m] = 0;
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_cur_term.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_cur_term.c
+--- ncurses-5.3/ncurses/tinfo/lib_cur_term.c Sat Dec 9 20:55:07 2000
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_cur_term.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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 <term_entry.h> /* TTY, cur_term */
+ #include <termcap.h> /* ospeed */
+
+-MODULE_ID("$Id: lib_cur_term.c,v 1.11 2000/12/10 02:55:07 tom Exp $")
++MODULE_ID("$Id: lib_cur_term.c,v 1.12 2003/02/23 01:00:56 tom Exp $")
+
+ NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
+
+@@ -49,11 +49,14 @@
+ {
+ TERMINAL *oldterm = cur_term;
+
++ T((T_CALLED("set_curterm(%p)"), termp));
++
+ if ((cur_term = termp) != 0) {
+ ospeed = _nc_ospeed(cur_term->_baudrate);
+ PC = (pad_char != NULL) ? pad_char[0] : 0;
+ }
+- return oldterm;
++ T((T_RETURN("%p"), oldterm));
++ return (oldterm);
+ }
+
+ NCURSES_EXPORT(int)
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_kernel.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_kernel.c
+--- ncurses-5.3/ncurses/tinfo/lib_kernel.c Sat May 11 15:32:18 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_kernel.c Tue May 13 20:08:22 2003
+@@ -48,12 +48,12 @@
+ #include <curses.priv.h>
+ #include <term.h> /* cur_term */
+
+-MODULE_ID("$Id: lib_kernel.c,v 1.22 2002/05/11 20:32:18 tom Exp $")
++MODULE_ID("$Id: lib_kernel.c,v 1.23 2003/01/26 00:24:53 tom Exp $")
+
+ static int
+ _nc_vdisable(void)
+ {
+- int value;
++ int value = -1;
+ #if defined(_POSIX_VDISABLE) && defined(HAVE_UNISTD_H)
+ value = _POSIX_VDISABLE;
+ #endif
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_setup.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_setup.c
+--- ncurses-5.3/ncurses/tinfo/lib_setup.c Sat Oct 12 16:50:18 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_setup.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,6 +29,7 @@
+ /****************************************************************************
+ * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
++ * and: Thomas E. Dickey 1996-2003 *
+ ****************************************************************************/
+
+ /*
+@@ -48,7 +49,7 @@
+
+ #include <term.h> /* lines, columns, cur_term */
+
+-MODULE_ID("$Id: lib_setup.c,v 1.70 2002/10/12 21:50:18 tom Exp $")
++MODULE_ID("$Id: lib_setup.c,v 1.77 2003/05/24 21:10:28 tom Exp $")
+
+ /****************************************************************************
+ *
+@@ -90,9 +91,12 @@
+ # endif
+ #endif
+
+-static int _use_env = TRUE;
++NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
++NCURSES_EXPORT_VAR(int) LINES = 0;
++NCURSES_EXPORT_VAR(int) COLS = 0;
++NCURSES_EXPORT_VAR(int) TABSIZE = 0;
+
+-static void do_prototype(void);
++static int _use_env = TRUE;
+
+ NCURSES_EXPORT(void)
+ use_env(bool f)
+@@ -102,10 +106,6 @@
+ returnVoid;
+ }
+
+-NCURSES_EXPORT_VAR(int) LINES = 0;
+-NCURSES_EXPORT_VAR(int) COLS = 0;
+-NCURSES_EXPORT_VAR(int) TABSIZE = 0;
+-
+ static void
+ _nc_get_screensize(int *linep, int *colp)
+ /* Obtain lines/columns values from the environment and/or terminfo entry */
+@@ -199,7 +199,6 @@
+ else
+ TABSIZE = 8;
+ T(("TABSIZE = %d", TABSIZE));
+-
+ }
+
+ #if USE_SIZECHANGE
+@@ -241,7 +240,9 @@
+ grab_entry(const char *const tn, TERMTYPE * const tp)
+ /* return 1 if entry found, 0 if not found, -1 if database not accessible */
+ {
++#if USE_DATABASE
+ char filename[PATH_MAX];
++#endif
+ int status;
+
+ /*
+@@ -275,7 +276,7 @@
+ * a string is cancelled, for merging entries).
+ */
+ if (status == 1) {
+- int n;
++ unsigned n;
+ for_each_boolean(n, tp) {
+ if (!VALID_BOOLEAN(tp->Booleans[n]))
+ tp->Booleans[n] = FALSE;
+@@ -289,7 +290,82 @@
+ }
+ #endif
+
+-NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
++/*
++** do_prototype()
++**
++** Take the real command character out of the CC environment variable
++** and substitute it in for the prototype given in 'command_character'.
++**
++*/
++static void
++do_prototype(void)
++{
++ int i;
++ char CC;
++ char proto;
++ char *tmp;
++
++ tmp = getenv("CC");
++ CC = *tmp;
++ proto = *command_character;
++
++ for_each_string(i, &(cur_term->type)) {
++ for (tmp = cur_term->type.Strings[i]; *tmp; tmp++) {
++ if (*tmp == proto)
++ *tmp = CC;
++ }
++ }
++}
++
++/*
++ * Check if we are running in a UTF-8 locale.
++ */
++NCURSES_EXPORT(char *)
++_nc_get_locale(void)
++{
++ char *env;
++ if (((env = getenv("LC_ALL")) != 0 && *env != '\0')
++ || ((env = getenv("LC_CTYPE")) != 0 && *env != '\0')
++ || ((env = getenv("LANG")) != 0 && *env != '\0')) {
++ return env;
++ }
++ return 0;
++}
++
++/*
++ * Check if we are running in a UTF-8 locale.
++ */
++NCURSES_EXPORT(int)
++_nc_unicode_locale(void)
++{
++ char *env = _nc_get_locale();
++ if (env != 0) {
++ if (strstr(env, ".UTF-8") != 0)
++ return 1;
++ }
++ return 0;
++}
++
++/*
++ * Check for known broken cases where a UTF-8 locale breaks the alternate
++ * character set.
++ */
++NCURSES_EXPORT(int)
++_nc_locale_breaks_acs(void)
++{
++ char *env = getenv("TERM");
++ if (env != 0) {
++ if (strstr(env, "linux"))
++ return 1; /* always broken */
++ if (strstr(env, "screen") != 0
++ && ((env = getenv("TERMCAP")) != 0
++ && strstr(env, "screen") != 0)
++ && strstr(env, "hhII00") != 0) {
++ return 1;
++ }
++ }
++ return 0;
++}
+
+ /*
+ * setupterm(termname, Filedes, errret)
+@@ -302,7 +378,6 @@
+ NCURSES_EXPORT(int)
+ setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
+ {
+- struct term *term_ptr;
+ int status;
+
+ START_TRACE();
+@@ -321,77 +396,89 @@
+
+ T(("your terminal name is %s", tname));
+
+- term_ptr = typeCalloc(TERMINAL, 1);
++ /*
++ * Allow output redirection. This is what SVr3 does. If stdout is
++ * directed to a file, screen updates go to standard error.
++ */
++ if (Filedes == STDOUT_FILENO && !isatty(Filedes))
++ Filedes = STDERR_FILENO;
+
+- if (term_ptr == 0) {
+- ret_error0(-1, "Not enough memory to create terminal structure.\n");
+- }
++ /*
++ * Check if we have already initialized to use this terminal. If so, we
++ * do not need to re-read the terminfo entry, or obtain TTY settings.
++ *
++ * This is an improvement on SVr4 curses. If an application mixes curses
++ * and termcap calls, it may call both initscr and tgetent. This is not
++ * really a good thing to do, but can happen if someone tries using ncurses
++ * with the readline library. The problem we are fixing is that when
++ * tgetent calls setupterm, the resulting Ottyb struct in cur_term is
++ * zeroed. A subsequent call to endwin uses the zeroed terminal settings
++ * rather than the ones saved in initscr. So we check if cur_term appears
++ * to contain terminal settings for the same output file as our current
++ * call - and copy those terminal settings. (SVr4 curses does not do this,
++ * however applications that are working around the problem will still work
++ * properly with this feature).
++ */
++ if (cur_term != 0
++ && cur_term->Filedes == Filedes
++ && _nc_name_match(cur_term->type.term_names, tname, "|")) {
++ T(("reusing existing terminal information and mode-settings"));
++ } else {
++ TERMINAL *term_ptr;
++
++ term_ptr = typeCalloc(TERMINAL, 1);
++
++ if (term_ptr == 0) {
++ ret_error0(-1,
++ "Not enough memory to create terminal structure.\n");
++ }
+ #if USE_DATABASE || USE_TERMCAP
+- status = grab_entry(tname, &term_ptr->type);
++ status = grab_entry(tname, &term_ptr->type);
+ #else
+- status = 0;
++ status = 0;
+ #endif
+
+- /* try fallback list if entry on disk */
+- if (status != 1) {
+- const TERMTYPE *fallback = _nc_fallback(tname);
++ /* try fallback list if entry on disk */
++ if (status != 1) {
++ const TERMTYPE *fallback = _nc_fallback(tname);
+
+- if (fallback) {
+- term_ptr->type = *fallback;
+- status = 1;
++ if (fallback) {
++ term_ptr->type = *fallback;
++ status = 1;
++ }
+ }
+- }
+
+- if (status == -1) {
+- ret_error0(-1, "terminals database is inaccessible\n");
+- } else if (status == 0) {
+- ret_error(0, "'%s': unknown terminal type.\n", tname);
+- }
++ if (status == -1) {
++ ret_error0(-1, "terminals database is inaccessible\n");
++ } else if (status == 0) {
++ ret_error(0, "'%s': unknown terminal type.\n", tname);
++ }
+
+- /*
+- * Improve on SVr4 curses. If an application mixes curses and termcap
+- * calls, it may call both initscr and tgetent. This is not really a
+- * good thing to do, but can happen if someone tries using ncurses with
+- * the readline library. The problem we are fixing is that when
+- * tgetent calls setupterm, the resulting Ottyb struct in cur_term is
+- * zeroed. A subsequent call to endwin uses the zeroed terminal
+- * settings rather than the ones saved in initscr. So we check if
+- * cur_term appears to contain terminal settings for the same output
+- * file as our current call - and copy those terminal settings. (SVr4
+- * curses does not do this, however applications that are working
+- * around the problem will still work properly with this feature).
+- */
+- if (cur_term != 0) {
+- if (cur_term->Filedes == Filedes)
+- term_ptr->Ottyb = cur_term->Ottyb;
+- }
++ set_curterm(term_ptr);
+
+- set_curterm(term_ptr);
++ if (command_character && getenv("CC"))
++ do_prototype();
+
+- if (command_character && getenv("CC"))
+- do_prototype();
++ strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
++ ttytype[NAMESIZE - 1] = '\0';
+
+- strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
+- ttytype[NAMESIZE - 1] = '\0';
++ cur_term->Filedes = Filedes;
+
+- /*
+- * Allow output redirection. This is what SVr3 does. If stdout is
+- * directed to a file, screen updates go to standard error.
+- */
+- if (Filedes == STDOUT_FILENO && !isatty(Filedes))
+- Filedes = STDERR_FILENO;
+- cur_term->Filedes = Filedes;
++ /*
++ * If an application calls setupterm() rather than initscr() or
++ * newterm(), we will not have the def_prog_mode() call in
++ * _nc_setupscreen(). Do it now anyway, so we can initialize the
++ * baudrate.
++ */
++ if (isatty(Filedes)) {
++ def_prog_mode();
++ baudrate();
++ }
++ }
+
+ /*
+- * If an application calls setupterm() rather than initscr() or newterm(),
+- * we will not have the def_prog_mode() call in _nc_setupscreen(). Do it
+- * now anyway, so we can initialize the baudrate.
++ * We should always check the screensize, just in case.
+ */
+- if (isatty(Filedes)) {
+- def_prog_mode();
+- baudrate();
+- }
+-
+ _nc_get_screensize(&LINES, &COLS);
+
+ if (errret)
+@@ -407,31 +494,3 @@
+ }
+ returnCode(OK);
+ }
+-
+-/*
+-** do_prototype()
+-**
+-** Take the real command character out of the CC environment variable
+-** and substitute it in for the prototype given in 'command_character'.
+-**
+-*/
+-
+-static void
+-do_prototype(void)
+-{
+- int i;
+- char CC;
+- char proto;
+- char *tmp;
+-
+- tmp = getenv("CC");
+- CC = *tmp;
+- proto = *command_character;
+-
+- for_each_string(i, &(cur_term->type)) {
+- for (tmp = cur_term->type.Strings[i]; *tmp; tmp++) {
+- if (*tmp == proto)
+- *tmp = CC;
+- }
+- }
+-}
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_termcap.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_termcap.c
+--- ncurses-5.3/ncurses/tinfo/lib_termcap.c Sat May 25 07:24:13 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_termcap.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 <term_entry.h>
+
+-MODULE_ID("$Id: lib_termcap.c,v 1.43 2002/05/25 12:24:13 tom Exp $")
++MODULE_ID("$Id: lib_termcap.c,v 1.44 2003/05/24 21:10:28 tom Exp $")
+
+ #define CSI 233
+ #define ESC 033 /* ^[ */
+@@ -233,7 +233,7 @@
+ NCURSES_EXPORT(int)
+ tgetflag(NCURSES_CONST char *id)
+ {
+- int i;
++ unsigned i;
+
+ T((T_CALLED("tgetflag(%s)"), id));
+ if (cur_term != 0) {
+@@ -261,7 +261,7 @@
+ NCURSES_EXPORT(int)
+ tgetnum(NCURSES_CONST char *id)
+ {
+- int i;
++ unsigned i;
+
+ T((T_CALLED("tgetnum(%s)"), id));
+ if (cur_term != 0) {
+@@ -290,7 +290,7 @@
+ NCURSES_EXPORT(char *)
+ tgetstr(NCURSES_CONST char *id, char **area)
+ {
+- int i;
++ unsigned i;
+ char *result = NULL;
+
+ T((T_CALLED("tgetstr(%s,%p)"), id, area));
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_ti.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_ti.c
+--- ncurses-5.3/ncurses/tinfo/lib_ti.c Sat Dec 9 20:55:08 2000
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_ti.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free 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,12 @@
+ #include <term_entry.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_ti.c,v 1.22 2000/12/10 02:55:08 tom Exp $")
++MODULE_ID("$Id: lib_ti.c,v 1.23 2003/05/24 21:10:28 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ tigetflag(NCURSES_CONST char *str)
+ {
+- int i;
++ unsigned i;
+
+ T((T_CALLED("tigetflag(%s)"), str));
+
+@@ -62,7 +62,7 @@
+ NCURSES_EXPORT(int)
+ tigetnum(NCURSES_CONST char *str)
+ {
+- int i;
++ unsigned i;
+
+ T((T_CALLED("tigetnum(%s)"), str));
+
+@@ -84,7 +84,7 @@
+ NCURSES_EXPORT(char *)
+ tigetstr(NCURSES_CONST char *str)
+ {
+- int i;
++ unsigned i;
+
+ T((T_CALLED("tigetstr(%s)"), str));
+
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_tparm.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_tparm.c
+--- ncurses-5.3/ncurses/tinfo/lib_tparm.c Sat Oct 5 14:33:24 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_tparm.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 <term.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_tparm.c,v 1.62 2002/10/05 19:33:24 Frank.Henigman Exp $")
++MODULE_ID("$Id: lib_tparm.c,v 1.67 2003/05/24 20:18:50 tom Exp $")
+
+ /*
+ * char *
+@@ -129,6 +129,9 @@
+ static size_t out_size;
+ static size_t out_used;
+
++static char *fmt_buff;
++static size_t fmt_size;
++
+ #if NO_LEAKS
+ NCURSES_EXPORT(void)
+ _nc_free_tparm(void)
+@@ -137,6 +140,8 @@
+ FreeAndNull(out_buff);
+ out_size = 0;
+ out_used = 0;
++ FreeAndNull(fmt_buff);
++ fmt_size = 0;
+ }
+ }
+ #endif
+@@ -247,153 +252,136 @@
+ static inline const char *
+ parse_format(const char *s, char *format, int *len)
+ {
+- bool done = FALSE;
+- bool allowminus = FALSE;
+- bool dot = FALSE;
+- bool err = FALSE;
+- char *fmt = format;
+- int my_width = 0;
+- int my_prec = 0;
+- int value = 0;
+-
+ *len = 0;
+- *format++ = '%';
+- while (*s != '\0' && !done) {
+- switch (*s) {
+- case 'c': /* FALLTHRU */
+- case 'd': /* FALLTHRU */
+- case 'o': /* FALLTHRU */
+- case 'x': /* FALLTHRU */
+- case 'X': /* FALLTHRU */
+- case 's':
+- *format++ = *s;
+- done = TRUE;
+- break;
+- case '.':
+- *format++ = *s++;
+- if (dot) {
+- err = TRUE;
+- } else { /* value before '.' is the width */
+- dot = TRUE;
+- my_width = value;
+- }
+- value = 0;
+- break;
+- case '#':
+- *format++ = *s++;
+- break;
+- case ' ':
+- *format++ = *s++;
+- break;
+- case ':':
+- s++;
+- allowminus = TRUE;
+- break;
+- case '-':
+- if (allowminus) {
+- *format++ = *s++;
+- } else {
++ if (format != 0) {
++ bool done = FALSE;
++ bool allowminus = FALSE;
++ bool dot = FALSE;
++ bool err = FALSE;
++ char *fmt = format;
++ int my_width = 0;
++ int my_prec = 0;
++ int value = 0;
++
++ *len = 0;
++ *format++ = '%';
++ while (*s != '\0' && !done) {
++ switch (*s) {
++ case 'c': /* FALLTHRU */
++ case 'd': /* FALLTHRU */
++ case 'o': /* FALLTHRU */
++ case 'x': /* FALLTHRU */
++ case 'X': /* FALLTHRU */
++ case 's':
++ *format++ = *s;
+ done = TRUE;
+- }
+- break;
+- default:
+- if (isdigit(UChar(*s))) {
+- value = (value * 10) + (*s - '0');
+- if (value > 10000)
++ break;
++ case '.':
++ *format++ = *s++;
++ if (dot) {
+ err = TRUE;
++ } else { /* value before '.' is the width */
++ dot = TRUE;
++ my_width = value;
++ }
++ value = 0;
++ break;
++ case '#':
+ *format++ = *s++;
+- } else {
+- done = TRUE;
++ break;
++ case ' ':
++ *format++ = *s++;
++ break;
++ case ':':
++ s++;
++ allowminus = TRUE;
++ break;
++ case '-':
++ if (allowminus) {
++ *format++ = *s++;
++ } else {
++ done = TRUE;
++ }
++ break;
++ default:
++ if (isdigit(UChar(*s))) {
++ value = (value * 10) + (*s - '0');
++ if (value > 10000)
++ err = TRUE;
++ *format++ = *s++;
++ } else {
++ done = TRUE;
++ }
+ }
+ }
+- }
+
+- /*
+- * If we found an error, ignore (and remove) the flags.
+- */
+- if (err) {
+- my_width = my_prec = value = 0;
+- format = fmt;
+- *format++ = '%';
+- *format++ = *s;
+- }
++ /*
++ * If we found an error, ignore (and remove) the flags.
++ */
++ if (err) {
++ my_width = my_prec = value = 0;
++ format = fmt;
++ *format++ = '%';
++ *format++ = *s;
++ }
+
+- /*
+- * Any value after '.' is the precision. If we did not see '.', then
+- * the value is the width.
+- */
+- if (dot)
+- my_prec = value;
+- else
+- my_width = value;
++ /*
++ * Any value after '.' is the precision. If we did not see '.', then
++ * the value is the width.
++ */
++ if (dot)
++ my_prec = value;
++ else
++ my_width = value;
+
+- *format = '\0';
+- /* return maximum string length in print */
+- *len = (my_width > my_prec) ? my_width : my_prec;
++ *format = '\0';
++ /* return maximum string length in print */
++ *len = (my_width > my_prec) ? my_width : my_prec;
++ }
+ return s;
+ }
+
+ #define isUPPER(c) ((c) >= 'A' && (c) <= 'Z')
+ #define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
+
+-static inline char *
+-tparam_internal(const char *string, va_list ap)
++/*
++ * Analyze the string to see how many parameters we need from the varargs list,
++ * and what their types are. We will only accept string parameters if they
++ * appear as a %l or %s format following an explicit parameter reference (e.g.,
++ * %p2%s). All other parameters are numbers.
++ *
++ * 'number' counts coarsely the number of pop's we see in the string, and
++ * 'popcount' shows the highest parameter number in the string. We would like
++ * to simply use the latter count, but if we are reading termcap strings, there
++ * may be cases that we cannot see the explicit parameter numbers.
++ */
++NCURSES_EXPORT(int)
++_nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount)
+ {
+-#define NUM_VARS 26
+- char *p_is_s[9];
+- long param[9];
+- int lastpop;
+- int popcount;
+- int number;
+- int len;
+- int level;
+- int x, y;
+- int i;
+ size_t len2;
+- register const char *cp;
+- static size_t len_fmt;
++ int i;
++ int lastpop = -1;
++ int len;
++ int number = 0;
++ const char *cp = string;
+ static char dummy[] = "";
+- static char *format;
+- static int dynamic_var[NUM_VARS];
+- static int static_vars[NUM_VARS];
+
+- out_used = 0;
+- if (string == NULL)
+- return NULL;
++ if (cp == 0)
++ return 0;
+
+- if ((len2 = strlen(string)) > len_fmt) {
+- len_fmt = len2 + len_fmt + 2;
+- if ((format = typeRealloc(char, len_fmt, format)) == 0)
++ if ((len2 = strlen(cp)) > fmt_size) {
++ fmt_size = len2 + fmt_size + 2;
++ if ((fmt_buff = typeRealloc(char, fmt_size, fmt_buff)) == 0)
+ return 0;
+ }
+
+- /*
+- * Find the highest parameter-number referred to in the format string.
+- * Use this value to limit the number of arguments copied from the
+- * variable-length argument list.
+- */
+-
+- number = 0;
+- lastpop = -1;
+- popcount = 0;
+- memset(p_is_s, 0, sizeof(p_is_s));
++ memset(p_is_s, 0, sizeof(p_is_s[0]) * NUM_PARM);
++ *popcount = 0;
+
+- /*
+- * Analyze the string to see how many parameters we need from the varargs
+- * list, and what their types are. We will only accept string parameters
+- * if they appear as a %l or %s format following an explicit parameter
+- * reference (e.g., %p2%s). All other parameters are numbers.
+- *
+- * 'number' counts coarsely the number of pop's we see in the string, and
+- * 'popcount' shows the highest parameter number in the string. We would
+- * like to simply use the latter count, but if we are reading termcap
+- * strings, there may be cases that we cannot see the explicit parameter
+- * numbers.
+- */
+- for (cp = string; (cp - string) < (int) len2;) {
++ while ((cp - string) < (int) len2) {
+ if (*cp == '%') {
+ cp++;
+- cp = parse_format(cp, format, &len);
++ cp = parse_format(cp, fmt_buff, &len);
+ switch (*cp) {
+ default:
+ break;
+@@ -416,11 +404,11 @@
+
+ case 'p':
+ cp++;
+- i = (*cp - '0');
+- if (i >= 0 && i <= 9) {
++ i = (UChar(*cp) - '0');
++ if (i >= 0 && i <= NUM_PARM) {
+ lastpop = i;
+- if (lastpop > popcount)
+- popcount = lastpop;
++ if (lastpop > *popcount)
++ *popcount = lastpop;
+ }
+ break;
+
+@@ -440,7 +428,7 @@
+
+ case L_BRACE:
+ cp++;
+- while (*cp >= '0' && *cp <= '9') {
++ while (isdigit(UChar(*cp))) {
+ cp++;
+ }
+ break;
+@@ -470,8 +458,8 @@
+
+ case 'i':
+ lastpop = -1;
+- if (popcount < 2)
+- popcount = 2;
++ if (*popcount < 2)
++ *popcount = 2;
+ break;
+ }
+ }
+@@ -479,8 +467,43 @@
+ cp++;
+ }
+
+- if (number > 9)
+- number = 9;
++ if (number > NUM_PARM)
++ number = NUM_PARM;
++ return number;
++}
++
++static inline char *
++tparam_internal(const char *string, va_list ap)
++{
++#define NUM_VARS 26
++ char *p_is_s[NUM_PARM];
++ long param[NUM_PARM];
++ int popcount;
++ int number;
++ int len;
++ int level;
++ int x, y;
++ int i;
++ const char *cp = string;
++ size_t len2;
++ static int dynamic_var[NUM_VARS];
++ static int static_vars[NUM_VARS];
++
++ if (cp == NULL)
++ return NULL;
++
++ out_used = 0;
++ len2 = strlen(cp);
++
++ /*
++ * Find the highest parameter-number referred to in the format string.
++ * Use this value to limit the number of arguments copied from the
++ * variable-length argument list.
++ */
++ number = _nc_tparm_analyze(cp, p_is_s, &popcount);
++ if (fmt_buff == 0)
++ return NULL;
++
+ for (i = 0; i < max(popcount, number); i++) {
+ /*
+ * A few caps (such as plab_norm) have string-valued parms.
+@@ -517,18 +540,18 @@
+ else
+ save_number(", %d", param[i], 0);
+ }
+- _tracef(T_CALLED("%s(%s%s)"), tname, _nc_visbuf(string), out_buff);
++ _tracef(T_CALLED("%s(%s%s)"), tname, _nc_visbuf(cp), out_buff);
+ out_used = 0;
+ }
+ #endif /* TRACE */
+
+- while (*string) {
+- if (*string != '%') {
+- save_char(*string);
++ while ((cp - string) < (int) len2) {
++ if (*cp != '%') {
++ save_char(UChar(*cp));
+ } else {
+- tparam_base = string++;
+- string = parse_format(string, format, &len);
+- switch (*string) {
++ tparam_base = cp++;
++ cp = parse_format(cp, fmt_buff, &len);
++ switch (*cp) {
+ default:
+ break;
+ case '%':
+@@ -539,7 +562,7 @@
+ case 'o': /* FALLTHRU */
+ case 'x': /* FALLTHRU */
+ case 'X': /* FALLTHRU */
+- save_number(format, npop(), len);
++ save_number(fmt_buff, npop(), len);
+ break;
+
+ case 'c': /* FALLTHRU */
+@@ -551,13 +574,13 @@
+ break;
+
+ case 's':
+- save_text(format, spop(), len);
++ save_text(fmt_buff, spop(), len);
+ break;
+
+ case 'p':
+- string++;
+- i = (*string - '1');
+- if (i >= 0 && i < 9) {
++ cp++;
++ i = (UChar(*cp) - '1');
++ if (i >= 0 && i < NUM_PARM) {
+ if (p_is_s[i])
+ spush(p_is_s[i]);
+ else
+@@ -566,39 +589,39 @@
+ break;
+
+ case 'P':
+- string++;
+- if (isUPPER(*string)) {
+- i = (*string - 'A');
++ cp++;
++ if (isUPPER(*cp)) {
++ i = (UChar(*cp) - 'A');
+ static_vars[i] = npop();
+- } else if (isLOWER(*string)) {
+- i = (*string - 'a');
++ } else if (isLOWER(*cp)) {
++ i = (UChar(*cp) - 'a');
+ dynamic_var[i] = npop();
+ }
+ break;
+
+ case 'g':
+- string++;
+- if (isUPPER(*string)) {
+- i = (*string - 'A');
++ cp++;
++ if (isUPPER(*cp)) {
++ i = (UChar(*cp) - 'A');
+ npush(static_vars[i]);
+- } else if (isLOWER(*string)) {
+- i = (*string - 'a');
++ } else if (isLOWER(*cp)) {
++ i = (UChar(*cp) - 'a');
+ npush(dynamic_var[i]);
+ }
+ break;
+
+ case S_QUOTE:
+- string++;
+- npush(*string);
+- string++;
++ cp++;
++ npush(UChar(*cp));
++ cp++;
+ break;
+
+ case L_BRACE:
+ number = 0;
+- string++;
+- while (*string >= '0' && *string <= '9') {
+- number = number * 10 + *string - '0';
+- string++;
++ cp++;
++ while (isdigit(UChar(*cp))) {
++ number = (number * 10) + (UChar(*cp) - '0');
++ cp++;
+ }
+ npush(number);
+ break;
+@@ -689,38 +712,38 @@
+ x = npop();
+ if (!x) {
+ /* scan forward for %e or %; at level zero */
+- string++;
++ cp++;
+ level = 0;
+- while (*string) {
+- if (*string == '%') {
+- string++;
+- if (*string == '?')
++ while (*cp) {
++ if (*cp == '%') {
++ cp++;
++ if (*cp == '?')
+ level++;
+- else if (*string == ';') {
++ else if (*cp == ';') {
+ if (level > 0)
+ level--;
+ else
+ break;
+- } else if (*string == 'e' && level == 0)
++ } else if (*cp == 'e' && level == 0)
+ break;
+ }
+
+- if (*string)
+- string++;
++ if (*cp)
++ cp++;
+ }
+ }
+ break;
+
+ case 'e':
+ /* scan forward for a %; at level zero */
+- string++;
++ cp++;
+ level = 0;
+- while (*string) {
+- if (*string == '%') {
+- string++;
+- if (*string == '?')
++ while (*cp) {
++ if (*cp == '%') {
++ cp++;
++ if (*cp == '?')
+ level++;
+- else if (*string == ';') {
++ else if (*cp == ';') {
+ if (level > 0)
+ level--;
+ else
+@@ -728,22 +751,22 @@
+ }
+ }
+
+- if (*string)
+- string++;
++ if (*cp)
++ cp++;
+ }
+ break;
+
+ case ';':
+ break;
+
+- } /* endswitch (*string) */
+- } /* endelse (*string == '%') */
++ } /* endswitch (*cp) */
++ } /* endelse (*cp == '%') */
+
+- if (*string == '\0')
++ if (*cp == '\0')
+ break;
+
+- string++;
+- } /* endwhile (*string) */
++ cp++;
++ } /* endwhile (*cp) */
+
+ get_space(1);
+ out_buff[out_used] = '\0';
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_tputs.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_tputs.c
+--- ncurses-5.3/ncurses/tinfo/lib_tputs.c Sat Aug 17 18:44:08 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_tputs.c Fri Sep 12 16:42:24 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -45,7 +45,7 @@
+ #include <termcap.h> /* ospeed */
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_tputs.c,v 1.60 2002/08/17 23:44:08 tom Exp $")
++MODULE_ID("$Id: lib_tputs.c,v 1.62 2003/08/23 21:39:20 tom Exp $")
+
+ NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
+ NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
+@@ -65,7 +65,7 @@
+ } else {
+ register int nullcount;
+
+- nullcount = (ms * _nc_baudrate(ospeed)) / 10000;
++ nullcount = (ms * _nc_baudrate(ospeed)) / (BAUDBYTE * 1000);
+ for (_nc_nulls_sent += nullcount; nullcount > 0; nullcount--)
+ my_outch(PC);
+ if (my_outch == _nc_outch)
+@@ -84,9 +84,7 @@
+ NCURSES_EXPORT(int)
+ _nc_outch(int ch)
+ {
+-#ifdef TRACE
+- _nc_outchars++;
+-#endif /* TRACE */
++ TRACE_OUTCHARS(1);
+
+ if (SP != 0
+ && SP->_cleanup) {
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/lib_ttyflags.c ncurses-5.3.20030906.orig/ncurses/tinfo/lib_ttyflags.c
+--- ncurses-5.3/ncurses/tinfo/lib_ttyflags.c Sat Oct 12 16:28:16 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/lib_ttyflags.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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>
+ #include <term.h> /* cur_term */
+
+-MODULE_ID("$Id: lib_ttyflags.c,v 1.9 2002/10/12 21:28:16 tom Exp $")
++MODULE_ID("$Id: lib_ttyflags.c,v 1.11 2003/05/17 23:50:37 tom Exp $")
+
+ #undef tabs
+
+@@ -60,8 +60,10 @@
+ _nc_get_tty_mode(TTY * buf)
+ {
+ if (cur_term == 0
+- || GET_TTY(cur_term->Filedes, buf) != 0)
++ || GET_TTY(cur_term->Filedes, buf) != 0) {
++ memset(buf, 0, sizeof(*buf));
+ return (ERR);
++ }
+ TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
+ cur_term->Filedes, _nc_trace_ttymode(buf)));
+ return (OK);
+@@ -71,8 +73,11 @@
+ _nc_set_tty_mode(TTY * buf)
+ {
+ if (cur_term == 0
+- || SET_TTY(cur_term->Filedes, buf) != 0)
++ || SET_TTY(cur_term->Filedes, buf) != 0) {
++ if ((errno == ENOTTY) && (SP != 0))
++ SP->_notty = TRUE;
+ return (ERR);
++ }
+ TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
+ cur_term->Filedes, _nc_trace_ttymode(buf)));
+ return (OK);
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/parse_entry.c ncurses-5.3.20030906.orig/ncurses/tinfo/parse_entry.c
+--- ncurses-5.3/ncurses/tinfo/parse_entry.c Sat Aug 31 12:02:02 2002
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/parse_entry.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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>
+ #include <term_entry.h>
+
+-MODULE_ID("$Id: parse_entry.c,v 1.57 2002/08/31 17:02:02 tom Exp $")
++MODULE_ID("$Id: parse_entry.c,v 1.58 2003/05/24 22:51:38 tom Exp $")
+
+ #ifdef LINT
+ static short const parametrized[] =
+@@ -196,8 +196,7 @@
+ */
+
+ NCURSES_EXPORT(int)
+-_nc_parse_entry
+-(struct entry *entryp, int literal, bool silent)
++_nc_parse_entry(struct entry *entryp, int literal, bool silent)
+ {
+ int token_type;
+ struct name_table_entry const *entry_ptr;
+@@ -217,11 +216,21 @@
+ entryp->startline = _nc_start_line;
+ DEBUG(2, ("Comment range is %ld to %ld", entryp->cstart, entryp->cend));
+
+- /* junk the 2-character termcap name, if present */
++ /*
++ * Strip off the 2-character termcap name, if present. Originally termcap
++ * used that as an indexing aid. We can retain 2-character terminfo names,
++ * but note that they would be lost if we translate to/from termcap. This
++ * feature is supposedly obsolete since "newer" BSD implementations do not
++ * use it; however our reference for this feature is SunOS 4.x, which
++ * implemented it. Note that the resulting terminal type was never the
++ * 2-character name, but was instead the first alias after that.
++ */
+ ptr = _nc_curr_token.tk_name;
+- if (ptr[2] == '|') {
+- ptr = _nc_curr_token.tk_name + 3;
+- _nc_curr_token.tk_name[2] = '\0';
++ if (_nc_syntax == SYN_TERMCAP) {
++ if (ptr[2] == '|') {
++ ptr += 3;
++ _nc_curr_token.tk_name[2] = '\0';
++ }
+ }
+
+ entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr);
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/read_entry.c ncurses-5.3.20030906.orig/ncurses/tinfo/read_entry.c
+--- ncurses-5.3/ncurses/tinfo/read_entry.c Sat Dec 9 20:55:08 2000
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/read_entry.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,6 +29,7 @@
+ /****************************************************************************
+ * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
++ * and: Thomas E. Dickey *
+ ****************************************************************************/
+
+ /*
+@@ -41,10 +42,10 @@
+ #include <tic.h>
+ #include <term_entry.h>
+
+-MODULE_ID("$Id: read_entry.c,v 1.72 2000/12/10 02:55:08 tom Exp $")
++MODULE_ID("$Id: read_entry.c,v 1.76 2003/07/05 19:31:51 tom Exp $")
+
+ #if !HAVE_TELL
+-#define tell(fd) 0 /* lseek() is POSIX, but not tell() - odd... */
++#define tell(fd) lseek(fd, 0, SEEK_CUR) /* lseek() is POSIX, but not tell() */
+ #endif
+
+ /*
+@@ -156,9 +157,10 @@
+ {
+ int name_size, bool_count, num_count, str_count, str_size;
+ int i;
+- char buf[MAX_ENTRY_SIZE];
++ char buf[MAX_ENTRY_SIZE + 1];
++ unsigned want, have;
+
+- TR(TRACE_DATABASE, ("READ termtype header @%d", tell(fd)));
++ TR(TRACE_DATABASE, ("READ termtype header @%ld", (long) tell(fd)));
+
+ memset(ptr, 0, sizeof(*ptr));
+
+@@ -197,16 +199,19 @@
+ str_count = 0;
+ }
+
+- /* grab the name (a null-terminate string) */
+- read(fd, buf, min(MAX_NAME_SIZE, (unsigned) name_size));
+- buf[MAX_NAME_SIZE] = '\0';
++ /* grab the name (a null-terminated string) */
++ want = min(MAX_NAME_SIZE, (unsigned) name_size);
++ if ((have = read(fd, buf, want)) != want) {
++ memset(buf + have, 0, want - have);
++ }
++ buf[want] = '\0';
+ ptr->term_names = typeCalloc(char, strlen(buf) + 1);
+ if (ptr->term_names == NULL) {
+ return (0);
+ }
+ (void) strcpy(ptr->term_names, buf);
+- if (name_size > MAX_NAME_SIZE)
+- lseek(fd, (off_t) (name_size - MAX_NAME_SIZE), 1);
++ if (have > MAX_NAME_SIZE)
++ lseek(fd, (off_t) (have - MAX_NAME_SIZE), 1);
+
+ /* grab the booleans */
+ if ((ptr->Booleans = typeCalloc(char, max(BOOLCOUNT, bool_count))) == 0
+@@ -252,7 +257,7 @@
+ * Read extended entries, if any, after the normal end of terminfo data.
+ */
+ even_boundary(str_size);
+- TR(TRACE_DATABASE, ("READ extended_header @%d", tell(fd)));
++ TR(TRACE_DATABASE, ("READ extended_header @%ld", (long) tell(fd)));
+ if (_nc_user_definable && read_shorts(fd, buf, 5)) {
+ int ext_bool_count = LOW_MSB(buf + 0);
+ int ext_num_count = LOW_MSB(buf + 2);
+@@ -284,8 +289,8 @@
+ ext_bool_count, ext_num_count, ext_str_count,
+ ext_str_size, ext_str_limit));
+
+- TR(TRACE_DATABASE, ("READ %d extended-booleans @%d",
+- ext_bool_count, tell(fd)));
++ TR(TRACE_DATABASE, ("READ %d extended-booleans @%ld",
++ ext_bool_count, (long) tell(fd)));
+ if ((ptr->ext_Booleans = ext_bool_count) != 0) {
+ if (read(fd, ptr->Booleans + BOOLCOUNT, (unsigned)
+ ext_bool_count) != ext_bool_count)
+@@ -293,8 +298,8 @@
+ }
+ even_boundary(ext_bool_count);
+
+- TR(TRACE_DATABASE, ("READ %d extended-numbers @%d",
+- ext_num_count, tell(fd)));
++ TR(TRACE_DATABASE, ("READ %d extended-numbers @%ld",
++ ext_num_count, (long) tell(fd)));
+ if ((ptr->ext_Numbers = ext_num_count) != 0) {
+ if (!read_shorts(fd, buf, ext_num_count))
+ return (0);
+@@ -302,13 +307,13 @@
+ convert_shorts(buf, ptr->Numbers + NUMCOUNT, ext_num_count);
+ }
+
+- TR(TRACE_DATABASE, ("READ extended-offsets @%d", tell(fd)));
++ TR(TRACE_DATABASE, ("READ extended-offsets @%ld", (long) tell(fd)));
+ if ((ext_str_count || need)
+ && !read_shorts(fd, buf, ext_str_count + need))
+ return (0);
+
+- TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%d",
+- ext_str_limit, tell(fd)));
++ TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%ld",
++ ext_str_limit, (long) tell(fd)));
+
+ if (ext_str_limit) {
+ if ((ptr->ext_str_table = typeMalloc(char, ext_str_limit)) == 0)
+@@ -374,8 +379,7 @@
+ }
+
+ NCURSES_EXPORT(int)
+-_nc_read_file_entry
+-(const char *const filename, TERMTYPE * ptr)
++_nc_read_file_entry(const char *const filename, TERMTYPE * ptr)
+ /* return 1 if read, 0 if not found or garbled */
+ {
+ int code, fd = -1;
+@@ -458,13 +462,20 @@
+ */
+
+ NCURSES_EXPORT(int)
+-_nc_read_entry
+-(const char *const tn, char *const filename, TERMTYPE * const tp)
++_nc_read_entry(const char *const tn, char *const filename, TERMTYPE * const tp)
+ {
+ char *envp;
+ char ttn[MAX_ALIAS + 3];
+
+- /* truncate the terminal name to prevent dangerous buffer airline */
++ if (strlen(tn) == 0
++ || strcmp(tn, ".") == 0
++ || strcmp(tn, "..") == 0
++ || _nc_pathlast(tn) != 0) {
++ T(("illegal or missing entry name '%s'", tn));
++ return 0;
++ }
++
++ /* truncate the terminal name to prevent buffer overflow */
+ (void) sprintf(ttn, "%c/%.*s", *tn, MAX_ALIAS, tn);
+
+ /* This is System V behavior, in conjunction with our requirements for
+@@ -482,7 +493,7 @@
+ /* this is an ncurses extension */
+ if ((envp = _nc_home_terminfo()) != 0) {
+ if (_nc_read_tic_entry(filename, envp, ttn, tp) == 1) {
+- return (1);
++ return 1;
+ }
+ }
+
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/read_termcap.c ncurses-5.3.20030906.orig/ncurses/tinfo/read_termcap.c
+--- ncurses-5.3/ncurses/tinfo/read_termcap.c Sat Oct 27 20:11:34 2001
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/read_termcap.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -57,7 +57,7 @@
+ #include <tic.h>
+ #include <term_entry.h>
+
+-MODULE_ID("$Id: read_termcap.c,v 1.58 2001/10/28 01:11:34 tom Exp $")
++MODULE_ID("$Id: read_termcap.c,v 1.60 2003/07/05 19:31:16 tom Exp $")
+
+ #if !PURE_TERMINFO
+
+@@ -945,6 +945,15 @@
+ static int lineno;
+
+ T(("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));
++ return 0;
++ }
++
+ if (use_terminfo_vars() && (p = getenv("TERMCAP")) != 0
+ && !is_pathname(p) && _nc_name_match(p, tn, "|:")) {
+ /* TERMCAP holds a termcap entry */
+diff -urNd -urNd ncurses-5.3/ncurses/tinfo/strings.c ncurses-5.3.20030906.orig/ncurses/tinfo/strings.c
+--- ncurses-5.3/ncurses/tinfo/strings.c Sat Dec 9 20:55:08 2000
++++ ncurses-5.3.20030906.orig/ncurses/tinfo/strings.c Fri Sep 12 16:42:10 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2000 Free Software Foundation, Inc. *
++ * Copyright (c) 2000,2003 Free 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.3 2000/12/10 02:55:08 tom Exp $")
++MODULE_ID("$Id: strings.c,v 1.5 2003/08/16 23:46:00 tom Exp $")
+
+ /****************************************************************************
+ * Useful string functions (especially for mvcur)
+@@ -44,8 +44,7 @@
+
+ #if !HAVE_STRSTR
+ NCURSES_EXPORT(char *)
+-_nc_strstr
+-(const char *haystack, const char *needle)
++_nc_strstr(const char *haystack, const char *needle)
+ {
+ size_t len1 = strlen(haystack);
+ size_t len2 = strlen(needle);
+@@ -63,16 +62,18 @@
+ #endif
+
+ /*
+- * Initialize the descriptor so we can append to it.
++ * Initialize the descriptor so we can append to it. Note that 'src' may
++ * be a null pointer (see _nc_str_null), so the corresponding strcat and
++ * strcpy calls have to allow for this.
+ */
+ NCURSES_EXPORT(string_desc *)
+-_nc_str_init
+-(string_desc * dst, char *src, size_t len)
++_nc_str_init(string_desc * dst, char *src, size_t len)
+ {
+ if (dst != 0) {
+ dst->s_head = src;
+ dst->s_tail = src;
+ dst->s_size = len - 1;
++ dst->s_init = dst->s_size;
+ if (src != 0)
+ *src = 0;
+ }
+@@ -83,8 +84,7 @@
+ * Initialize the descriptor for only tracking the amount of memory used.
+ */
+ NCURSES_EXPORT(string_desc *)
+-_nc_str_null
+-(string_desc * dst, size_t len)
++_nc_str_null(string_desc * dst, size_t len)
+ {
+ return _nc_str_init(dst, 0, len);
+ }
+@@ -93,8 +93,7 @@
+ * Copy a descriptor
+ */
+ NCURSES_EXPORT(string_desc *)
+-_nc_str_copy
+-(string_desc * dst, string_desc * src)
++_nc_str_copy(string_desc * dst, string_desc * src)
+ {
+ *dst = *src;
+ return dst;
+@@ -135,7 +134,7 @@
+ strcpy(dst->s_head, src);
+ dst->s_tail = dst->s_head + len;
+ }
+- dst->s_size -= len;
++ dst->s_size = dst->s_init - len;
+ return TRUE;
+ }
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/trace/lib_trace.c ncurses-5.3.20030906.orig/ncurses/trace/lib_trace.c
+--- ncurses-5.3/ncurses/trace/lib_trace.c Sat Oct 12 10:20:15 2002
++++ ncurses-5.3.20030906.orig/ncurses/trace/lib_trace.c Fri Sep 12 16:41:56 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 <ctype.h>
+
+-MODULE_ID("$Id: lib_trace.c,v 1.50 2002/10/12 15:20:15 tom Exp $")
++MODULE_ID("$Id: lib_trace.c,v 1.52 2003/08/09 22:15:44 tom Exp $")
+
+ NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
+
+@@ -48,20 +48,21 @@
+ NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
+ NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
+
+-static FILE *tracefp; /* default to writing to stderr */
++static FILE *tracefp = 0; /* default to writing to stderr */
+
+ NCURSES_EXPORT(void)
+-trace(const unsigned int tracelevel GCC_UNUSED)
++trace(const unsigned int tracelevel)
+ {
+ static bool been_here = FALSE;
+ static char my_name[] = "trace";
+
+- if (!been_here && tracelevel) {
+- been_here = TRUE;
++ if ((tracefp == 0) && tracelevel) {
++ const char *mode = been_here ? "ab" : "wb";
+
++ been_here = TRUE;
+ _nc_tracing = tracelevel;
+ if (_nc_access(my_name, W_OK) < 0
+- || (tracefp = fopen(my_name, "wb")) == 0) {
++ || (tracefp = fopen(my_name, mode)) == 0) {
+ perror("curses: Can't open 'trace' file: ");
+ exit(EXIT_FAILURE);
+ }
+@@ -74,8 +75,16 @@
+ #elif HAVE_SETBUF /* POSIX */
+ (void) setbuffer(tracefp, (char *) 0);
+ #endif
+- _tracef("TRACING NCURSES version %s (tracelevel=%#x)",
+- curses_version(), tracelevel);
++ _tracef("TRACING NCURSES version %s.%d (tracelevel=%#x)",
++ NCURSES_VERSION,
++ NCURSES_VERSION_PATCH,
++ tracelevel);
++ } else if (tracelevel == 0) {
++ if (tracefp != 0) {
++ fclose(tracefp);
++ tracefp = 0;
++ }
++ _nc_tracing = tracelevel;
+ } else if (_nc_tracing != tracelevel) {
+ _nc_tracing = tracelevel;
+ _tracef("tracelevel=%#x", tracelevel);
+diff -urNd -urNd ncurses-5.3/ncurses/trace/lib_traceatr.c ncurses-5.3.20030906.orig/ncurses/trace/lib_traceatr.c
+--- ncurses-5.3/ncurses/trace/lib_traceatr.c Sat Sep 28 07:37:03 2002
++++ ncurses-5.3.20030906.orig/ncurses/trace/lib_traceatr.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 Dickey 1996-2001 *
++ * Author: Thomas Dickey 1996-2003 *
+ * and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ ****************************************************************************/
+@@ -39,7 +39,7 @@
+ #include <curses.priv.h>
+ #include <term.h> /* acs_chars */
+
+-MODULE_ID("$Id: lib_traceatr.c,v 1.43 2002/09/28 12:37:03 tom Exp $")
++MODULE_ID("$Id: lib_traceatr.c,v 1.47 2003/06/28 23:20:26 tom Exp $")
+
+ #define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name)
+
+@@ -52,7 +52,7 @@
+ _traceattr2(int bufnum, attr_t newmode)
+ {
+ char *buf = _nc_trace_buf(bufnum, BUFSIZ);
+- char *tmp = buf;
++ char temp[80];
+ static const struct {
+ unsigned int val;
+ const char *name;
+@@ -92,39 +92,39 @@
+ unsigned save_nc_tracing = _nc_tracing;
+ _nc_tracing = 0;
+
+- strcpy(tmp++, l_brace);
++ strcpy(buf, l_brace);
+
+ for (n = 0; n < SIZEOF(names); n++) {
+ if ((newmode & names[n].val) != 0) {
+ if (buf[1] != '\0')
+- strcat(tmp, "|");
+- strcat(tmp, names[n].name);
+- tmp += strlen(tmp);
++ buf = _nc_trace_bufcat(bufnum, "|");
++ buf = _nc_trace_bufcat(bufnum, names[n].name);
+
+ if (names[n].val == A_COLOR) {
+ short pairnum = PAIR_NUMBER(newmode);
+ short fg, bg;
+
+- if (pair_content(pairnum, &fg, &bg) == OK)
+- (void) sprintf(tmp,
++ if (pair_content(pairnum, &fg, &bg) == OK) {
++ (void) sprintf(temp,
+ "{%d = {%s, %s}}",
+ pairnum,
+ COLOR_OF(fg),
+- COLOR_OF(bg)
+- );
+- else
+- (void) sprintf(tmp, "{%d}", pairnum);
++ COLOR_OF(bg));
++ } else {
++ (void) sprintf(temp, "{%d}", pairnum);
++ }
++ buf = _nc_trace_bufcat(bufnum, temp);
+ }
+ }
+ }
+ if (ChAttrOf(newmode) == A_NORMAL) {
+ if (buf[1] != '\0')
+- strcat(tmp, "|");
+- strcat(tmp, "A_NORMAL");
++ (void) _nc_trace_bufcat(bufnum, "|");
++ (void) _nc_trace_bufcat(bufnum, "A_NORMAL");
+ }
+
+ _nc_tracing = save_nc_tracing;
+- return (strcat(buf, r_brace));
++ return (_nc_trace_bufcat(bufnum, r_brace));
+ }
+
+ NCURSES_EXPORT(char *)
+@@ -146,7 +146,7 @@
+ {
+ const char *result = 0;
+
+- if (attr & A_ALTCHARSET) {
++ if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
+ char *cp;
+ char *found = 0;
+ static const struct {
+@@ -214,20 +214,21 @@
+ NCURSES_EXPORT(char *)
+ _tracechtype2(int bufnum, chtype ch)
+ {
+- char *buf = _nc_trace_buf(bufnum, BUFSIZ);
+ const char *found;
+
+- strcpy(buf, l_brace);
++ strcpy(_nc_trace_buf(bufnum, BUFSIZ), l_brace);
+ if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
+- (void) strcat(buf, found);
++ (void) _nc_trace_bufcat(bufnum, found);
+ } else
+- (void) strcat(buf, _tracechar(ChCharOf(ch)));
++ (void) _nc_trace_bufcat(bufnum, _tracechar(ChCharOf(ch)));
+
+- if (ChAttrOf(ch) != A_NORMAL)
+- (void) sprintf(buf + strlen(buf), " | %s",
++ if (ChAttrOf(ch) != A_NORMAL) {
++ (void) _nc_trace_bufcat(bufnum, " | ");
++ (void) _nc_trace_bufcat(bufnum,
+ _traceattr2(bufnum + 20, ChAttrOf(ch)));
++ }
+
+- return (strcat(buf, r_brace));
++ return (_nc_trace_bufcat(bufnum, r_brace));
+ }
+
+ NCURSES_EXPORT(char *)
+@@ -256,15 +257,16 @@
+ if (ch != 0) {
+ attr = AttrOfD(ch);
+ if ((found = _nc_altcharset_name(attr, CharOfD(ch))) != 0) {
+- (void) strcat(buf, found);
++ (void) _nc_trace_bufcat(bufnum, found);
+ attr &= ~A_ALTCHARSET;
+- } else if (!isnac(CHDEREF(ch))) {
++ } else if (isnac(CHDEREF(ch))) {
++ (void) _nc_trace_bufcat(bufnum, "{NAC}");
++ } else {
+ PUTC_DATA;
+ int n;
+
+- memset (&PUT_st, '\0', sizeof (PUT_st));
+- PUTC_i = 0;
+- (void) strcat(buf, "{ ");
++ PUTC_INIT;
++ (void) _nc_trace_bufcat(bufnum, "{ ");
+ do {
+ PUTC_ch = PUTC_i < CCHARW_MAX ? ch->chars[PUTC_i] : L'\0';
+ PUTC_n = wcrtomb(PUTC_buf, ch->chars[PUTC_i], &PUT_st);
+@@ -274,19 +276,20 @@
+ break;
+ for (n = 0; n < PUTC_n; n++) {
+ if (n)
+- (void) strcat(buf, ", ");
+- (void) strcat(buf, _tracechar(UChar(PUTC_buf[n])));
++ (void) _nc_trace_bufcat(bufnum, ", ");
++ (void) _nc_trace_bufcat(bufnum, _tracechar(UChar(PUTC_buf[n])));
+ }
+ ++PUTC_i;
+ } while (PUTC_ch != L'\0');
+- (void) strcat(buf, " }");
++ (void) _nc_trace_bufcat(bufnum, " }");
++ }
++ if (attr != A_NORMAL) {
++ (void) _nc_trace_bufcat(bufnum, " | ");
++ (void) _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr));
+ }
+- if (attr != A_NORMAL)
+- (void) sprintf(buf + strlen(buf), " | %s",
+- _traceattr2(bufnum + 20, attr));
+ }
+
+- return (strcat(buf, r_brace));
++ return (_nc_trace_bufcat(bufnum, r_brace));
+ }
+
+ NCURSES_EXPORT(char *)
+diff -urNd -urNd ncurses-5.3/ncurses/trace/lib_tracechr.c ncurses-5.3.20030906.orig/ncurses/trace/lib_tracechr.c
+--- ncurses-5.3/ncurses/trace/lib_tracechr.c Sat May 25 18:34:19 2002
++++ ncurses-5.3.20030906.orig/ncurses/trace/lib_tracechr.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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,19 +36,36 @@
+ */
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_tracechr.c,v 1.9 2002/05/25 23:34:19 tom Exp $")
++#include <ctype.h>
++
++MODULE_ID("$Id: lib_tracechr.c,v 1.10 2003/06/14 11:05:42 tom Exp $")
+
+ #ifdef TRACE
+ NCURSES_EXPORT(char *)
+ _tracechar(int ch)
+ {
+- static char crep[40];
+- (void) sprintf(crep, "'%.30s' = %#03o",
+- ((ch > KEY_MIN || ch < 0)
+- ? keyname(ch)
+- : unctrl(ch)),
+- ch);
+- return (crep);
++ static char result[40];
++ char *name;
++
++ if (ch > KEY_MIN || ch < 0) {
++ name = keyname(ch);
++ if (name == 0 || *name == '\0')
++ name = "NULL";
++ (void) sprintf(result, "'%.30s' = %#03o", name, ch);
++ } else if (!isprint(ch) || ch > 255) {
++ /*
++ * 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(result, "%#03o", ch);
++ } else {
++ name = unctrl(ch);
++ if (name == 0 || *name == 0)
++ name = "null"; /* shouldn't happen */
++ (void) sprintf(result, "'%.30s' = %#03o", name, ch);
++ }
++ return (result);
+ }
+ #else
+ empty_module(_nc_lib_tracechr)
+diff -urNd -urNd ncurses-5.3/ncurses/trace/trace_buf.c ncurses-5.3.20030906.orig/ncurses/trace/trace_buf.c
+--- ncurses-5.3/ncurses/trace/trace_buf.c Sat Jul 13 19:08:08 2002
++++ ncurses-5.3.20030906.orig/ncurses/trace/trace_buf.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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,15 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: trace_buf.c,v 1.11 2002/07/14 00:08:08 tom Exp $")
++MODULE_ID("$Id: trace_buf.c,v 1.12 2003/03/15 21:21:36 tom Exp $")
+
+ typedef struct {
+ char *text;
+ size_t size;
+ } LIST;
+
+-NCURSES_EXPORT(char *)
+-_nc_trace_buf(int bufnum, size_t want)
++static char *
++_nc_trace_alloc(int bufnum, size_t want)
+ {
+ char *result = 0;
+ static LIST *list;
+@@ -65,8 +65,6 @@
+ list[bufnum].size = want;
+ }
+
+- if (list[bufnum].text != 0)
+- *(list[bufnum].text) = '\0';
+ result = list[bufnum].text;
+ }
+ #if NO_LEAKS
+@@ -82,3 +80,30 @@
+ #endif
+ return result;
+ }
++
++/*
++ * (re)Allocate a buffer big enough for the caller's wants.
++ */
++NCURSES_EXPORT(char *)
++_nc_trace_buf(int bufnum, size_t want)
++{
++ char *result = _nc_trace_alloc(bufnum, want);
++ if (result != 0)
++ *result = '\0';
++ return result;
++}
++
++/*
++ * Append a new string to an existing buffer.
++ */
++NCURSES_EXPORT(char *)
++_nc_trace_bufcat(int bufnum, const char *value)
++{
++ char *buffer = _nc_trace_alloc(bufnum, 0);
++ size_t have = strlen(buffer);
++
++ buffer = _nc_trace_alloc(bufnum, 1 + have + strlen(value));
++ (void) strcpy(buffer + have, value);
++
++ return buffer;
++}
+diff -urNd -urNd ncurses-5.3/ncurses/trace/varargs.c ncurses-5.3.20030906.orig/ncurses/trace/varargs.c
+--- ncurses-5.3/ncurses/trace/varargs.c Sat Oct 5 18:04:17 2002
++++ ncurses-5.3.20030906.orig/ncurses/trace/varargs.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2002,2003 Free 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.3 2002/10/05 23:04:17 tom Exp $")
++MODULE_ID("$Id: varargs.c,v 1.4 2003/05/24 21:10:28 tom Exp $")
+
+ #ifdef TRACE
+
+@@ -46,7 +46,7 @@
+
+ #define VA_INT(type) ival = va_arg(ap, type)
+ #define VA_FLT(type) fval = va_arg(ap, type)
+-#define VA_PTR(type) pval = (void *)va_arg(ap, type)
++#define VA_PTR(type) pval = (char *)va_arg(ap, type)
+ #define VA_STR(type) sval = va_arg(ap, type)
+
+ /*
+diff -urNd -urNd ncurses-5.3/ncurses/trace/visbuf.c ncurses-5.3.20030906.orig/ncurses/trace/visbuf.c
+--- ncurses-5.3/ncurses/trace/visbuf.c Sat Oct 5 19:03:43 2002
++++ ncurses-5.3.20030906.orig/ncurses/trace/visbuf.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2002,2003 Free 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-2001 *
++ * Author: Thomas E. Dickey 1996-2003 *
+ * and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ ****************************************************************************/
+@@ -41,7 +41,7 @@
+ #include <tic.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: visbuf.c,v 1.6 2002/10/06 00:03:43 tom Exp $")
++MODULE_ID("$Id: visbuf.c,v 1.8 2003/06/28 23:20:37 tom Exp $")
+
+ static char *
+ _nc_vischar(char *tp, unsigned c)
+@@ -187,9 +187,7 @@
+ NCURSES_EXPORT(const char *)
+ _nc_viscbuf2(int bufnum, const cchar_t * buf, int len)
+ {
+- size_t have = BUFSIZ;
+- char *result = _nc_trace_buf(bufnum, have);
+- char *tp = result;
++ char *result = _nc_trace_buf(bufnum, BUFSIZ);
+ int n;
+ bool same = TRUE;
+ attr_t attr = A_NORMAL;
+@@ -211,17 +209,18 @@
+ * detailed trace function that displays each character separately.
+ */
+ if (same) {
+- *tp++ = D_QUOTE;
++ static const char d_quote[] =
++ {D_QUOTE, 0};
++
++ result = _nc_trace_bufcat(bufnum, d_quote);
+ while (len-- > 0) {
+ if ((found = _nc_altcharset_name(attr, CharOfD(buf))) != 0) {
+- (void) strcpy(tp, found);
+- tp += strlen(tp);
++ result = _nc_trace_bufcat(bufnum, found);
+ attr &= ~A_ALTCHARSET;
+ } else if (!isnac(CHDEREF(buf))) {
+ PUTC_DATA;
+
+- memset(&PUT_st, '\0', sizeof(PUT_st));
+- PUTC_i = 0;
++ PUTC_INIT;
+ do {
+ PUTC_ch = PUTC_i < CCHARW_MAX ? buf->chars[PUTC_i] : L'\0';
+ PUTC_n = wcrtomb(PUTC_buf, buf->chars[PUTC_i], &PUT_st);
+@@ -230,33 +229,31 @@
+ if (PUTC_n <= 0)
+ break;
+ for (n = 0; n < PUTC_n; n++) {
+- tp = _nc_vischar(tp, UChar(PUTC_buf[n]));
++ char temp[80];
++ _nc_vischar(temp, UChar(PUTC_buf[n]));
++ result = _nc_trace_bufcat(bufnum, temp);
+ }
+ ++PUTC_i;
+ } while (PUTC_ch != L'\0');
+ }
+ buf++;
+ }
+- *tp++ = D_QUOTE;
+- *tp++ = '\0';
+- if (attr != A_NORMAL)
+- (void) sprintf(tp, " | %s",
+- _traceattr2(bufnum + 20, attr));
++ result = _nc_trace_bufcat(bufnum, d_quote);
++ if (attr != A_NORMAL) {
++ result = _nc_trace_bufcat(bufnum, " | ");
++ result = _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr));
++ }
+ } else {
+- *tp++ = L_BRACE;
++ static const char l_brace[] =
++ {L_BRACE, 0};
++ static const char r_brace[] =
++ {R_BRACE, 0};
++ strcpy(result, l_brace);
+ while (len-- > 0) {
+- char *temp = _tracecchar_t2(bufnum + 20, buf++);
+- size_t used = (tp - result);
+- size_t want = strlen(temp) + 5 + used;
+- if (want > have) {
+- result = _nc_trace_buf(bufnum, have = want);
+- tp = result + used;
+- }
+- (void) strcpy(tp, temp);
+- tp += strlen(tp);
++ result = _nc_trace_bufcat(bufnum,
++ _tracecchar_t2(bufnum + 20, buf++));
+ }
+- *tp++ = R_BRACE;
+- *tp++ = '\0';
++ result = _nc_trace_bufcat(bufnum, r_brace);
+ }
+ return result;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/tty/lib_mvcur.c ncurses-5.3.20030906.orig/ncurses/tty/lib_mvcur.c
+--- ncurses-5.3/ncurses/tty/lib_mvcur.c Sat Sep 14 18:02:06 2002
++++ ncurses-5.3.20030906.orig/ncurses/tty/lib_mvcur.c Fri Sep 12 16:42:24 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -108,7 +108,9 @@
+ * LONG_DIST and (b) further inward from the right or left edge than LONG_DIST,
+ * we'll consider nonlocal.
+ */
+-#define NOT_LOCAL(fy, fx, ty, tx) ((tx > LONG_DIST) && (tx < screen_lines - 1 - LONG_DIST) && (abs(ty-fy) + abs(tx-fx) > LONG_DIST))
++#define NOT_LOCAL(fy, fx, ty, tx) ((tx > LONG_DIST) \
++ && (tx < screen_columns - 1 - LONG_DIST) \
++ && (abs(ty-fy) + abs(tx-fx) > LONG_DIST))
+
+ /****************************************************************************
+ *
+@@ -152,12 +154,8 @@
+ #include <term.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_mvcur.c,v 1.86 2002/09/14 23:02:06 Philippe.Blain Exp $")
++MODULE_ID("$Id: lib_mvcur.c,v 1.93 2003/08/23 21:51:58 tom Exp $")
+
+-#define CURRENT_ROW SP->_cursrow /* phys cursor row */
+-#define CURRENT_COLUMN SP->_curscol /* phys cursor column */
+-#define CURRENT_ATTR SP->_current_attr /* current phys attribute */
+-#define REAL_ATTR SP->_current_attr /* phys current attribute */
+ #define WANT_CHAR(y, x) SP->_newscr->_line[y].text[x] /* desired state */
+ #define BAUDRATE cur_term->_baudrate /* bits per second */
+
+@@ -296,10 +294,11 @@
+ _nc_mvcur_init(void)
+ /* initialize the cost structure */
+ {
+- /*
+- * 9 = 7 bits + 1 parity + 1 stop.
+- */
+- SP->_char_padding = (9 * 1000 * 10) / (BAUDRATE > 0 ? BAUDRATE : 9600);
++ if (isatty(fileno(SP->_ofp)))
++ SP->_char_padding = ((BAUDBYTE * 1000 * 10)
++ / (BAUDRATE > 0 ? BAUDRATE : 9600));
++ else
++ SP->_char_padding = 1; /* must be nonzero */
+ if (SP->_char_padding <= 0)
+ SP->_char_padding = 1; /* must be nonzero */
+ TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP->_char_padding));
+@@ -371,6 +370,13 @@
+ SP->_dch1_cost = NormalizedCost(delete_character, 1);
+ SP->_ich1_cost = NormalizedCost(insert_character, 1);
+
++ /*
++ * If this is a bce-terminal, we want to bias the choice so we use clr_eol
++ * rather than spaces at the end of a line.
++ */
++ if (back_color_erase)
++ SP->_el_cost = 0;
++
+ /* parameterized screen-update strings */
+ SP->_dch_cost = NormalizedCost(tparm(parm_dch, 23), 1);
+ SP->_ich_cost = NormalizedCost(tparm(parm_ich, 23), 1);
+@@ -508,10 +514,10 @@
+ n = (from_y - to_y);
+
+ if (parm_up_cursor
+- && SP->_cup_cost < vcost
++ && SP->_cuu_cost < vcost
+ && _nc_safe_strcat(_nc_str_copy(target, &save),
+ tparm(parm_up_cursor, n))) {
+- vcost = SP->_cup_cost;
++ vcost = SP->_cuu_cost;
+ }
+
+ if (cursor_up && (n * SP->_cuu1_cost < vcost)) {
+@@ -570,7 +576,6 @@
+ }
+ #endif /* USE_HARD_TABS */
+
+-#if defined(REAL_ATTR) && defined(WANT_CHAR)
+ if (n <= 0 || n >= (int) check.s_size)
+ ovw = FALSE;
+ #if BSD_TPUTS
+@@ -601,7 +606,7 @@
+
+ for (i = 0; i < n; i++) {
+ NCURSES_CH_T ch = WANT_CHAR(to_y, from_x + i);
+- if (AttrOf(ch) != CURRENT_ATTR
++ if (AttrOf(ch) != SP->_current_attr
+ #if USE_WIDEC_SUPPORT
+ || !Charable(ch)
+ #endif
+@@ -619,9 +624,7 @@
+ *check.s_tail = '\0';
+ check.s_size -= n;
+ lhcost += n * SP->_char_padding;
+- } else
+-#endif /* defined(REAL_ATTR) && defined(WANT_CHAR) */
+- {
++ } else {
+ lhcost = repeated_append(&check, lhcost, SP->_cuf1_cost,
+ n, cursor_right);
+ }
+@@ -831,6 +834,8 @@
+ if (usecost != INFINITY) {
+ TPUTS_TRACE("mvcur");
+ tputs(buffer, 1, _nc_outch);
++ SP->_cursrow = ynew;
++ SP->_curscol = xnew;
+ return (OK);
+ } else
+ return (ERR);
+@@ -840,67 +845,94 @@
+ mvcur(int yold, int xold, int ynew, int xnew)
+ /* optimized cursor move from (yold, xold) to (ynew, xnew) */
+ {
++ attr_t oldattr;
++ int code;
++
+ TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"),
+ yold, xold, ynew, xnew));
+
+- if (SP == 0)
+- returnCode(ERR);
++ if (SP == 0) {
++ code = ERR;
++ } else if (yold == ynew && xold == xnew) {
++ code = OK;
++ } else {
+
+- if (yold == ynew && xold == xnew)
+- returnCode(OK);
++ /*
++ * Most work here is rounding for terminal boundaries getting the
++ * column position implied by wraparound or the lack thereof and
++ * rolling up the screen to get ynew on the screen.
++ */
++ if (xnew >= screen_columns) {
++ ynew += xnew / screen_columns;
++ xnew %= screen_columns;
++ }
+
+- /*
+- * Most work here is rounding for terminal boundaries getting the
+- * column position implied by wraparound or the lack thereof and
+- * rolling up the screen to get ynew on the screen.
+- */
++ /*
++ * Force restore even if msgr is on when we're in an alternate
++ * character set -- these have a strong tendency to screw up the CR &
++ * LF used for local character motions!
++ */
++ oldattr = SP->_current_attr;
++ if ((oldattr & A_ALTCHARSET)
++ || (oldattr && !move_standout_mode)) {
++ TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
++ oldattr, _traceattr(oldattr)));
++ (void) vidattr(A_NORMAL);
++ }
+
+- if (xnew >= screen_columns) {
+- ynew += xnew / screen_columns;
+- xnew %= screen_columns;
+- }
+- if (xold >= screen_columns) {
+- int l;
++ if (xold >= screen_columns) {
++ int l;
+
+- if (SP->_nl) {
+- l = (xold + 1) / screen_columns;
+- yold += l;
+- if (yold >= screen_lines)
+- l -= (yold - screen_lines - 1);
++ if (SP->_nl) {
++ l = (xold + 1) / screen_columns;
++ yold += l;
++ if (yold >= screen_lines)
++ l -= (yold - screen_lines - 1);
+
+- while (l > 0) {
+- if (newline) {
+- TPUTS_TRACE("newline");
+- tputs(newline, 0, _nc_outch);
+- } else
+- putchar('\n');
+- l--;
+- if (xold > 0) {
+- if (carriage_return) {
+- TPUTS_TRACE("carriage_return");
+- tputs(carriage_return, 0, _nc_outch);
++ while (l > 0) {
++ if (newline) {
++ TPUTS_TRACE("newline");
++ putp(newline);
+ } else
+- putchar('\r');
+- xold = 0;
++ putchar('\n');
++ l--;
++ if (xold > 0) {
++ if (carriage_return) {
++ TPUTS_TRACE("carriage_return");
++ putp(carriage_return);
++ } else
++ putchar('\r');
++ xold = 0;
++ }
+ }
++ } else {
++ /*
++ * If caller set nonl(), we cannot really use newlines to
++ * position to the next row.
++ */
++ xold = -1;
++ yold = -1;
+ }
+- } else {
+- /*
+- * If caller set nonl(), we cannot really use newlines to position
+- * to the next row.
+- */
+- xold = -1;
+- yold = -1;
+ }
+- }
+
+- if (yold > screen_lines - 1)
+- yold = screen_lines - 1;
+- if (ynew > screen_lines - 1)
+- ynew = screen_lines - 1;
++ if (yold > screen_lines - 1)
++ yold = screen_lines - 1;
++ if (ynew > screen_lines - 1)
++ ynew = screen_lines - 1;
+
+- /* destination location is on screen now */
+- returnCode(onscreen_mvcur(yold, xold, ynew, xnew, TRUE));
++ /* destination location is on screen now */
++ code = onscreen_mvcur(yold, xold, ynew, xnew, TRUE);
++
++ /*
++ * Restore attributes if we disabled them before moving.
++ */
++ if (oldattr != SP->_current_attr) {
++ TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move",
++ oldattr, _traceattr(oldattr)));
++ (void) vidattr(oldattr);
++ }
++ }
++ returnCode(code);
+ }
+
+ #if defined(TRACE) || defined(NCURSES_TEST)
+diff -urNd -urNd ncurses-5.3/ncurses/tty/lib_twait.c ncurses-5.3.20030906.orig/ncurses/tty/lib_twait.c
+--- ncurses-5.3/ncurses/tty/lib_twait.c Sat Aug 31 19:28:18 2002
++++ ncurses-5.3.20030906.orig/ncurses/tty/lib_twait.c Tue May 13 20:08:22 2003
+@@ -61,7 +61,7 @@
+ # endif
+ #endif
+
+-MODULE_ID("$Id: lib_twait.c,v 1.46 2002/09/01 00:28:18 tom Exp $")
++MODULE_ID("$Id: lib_twait.c,v 1.47 2003/01/25 18:21:17 tom Exp $")
+
+ static long
+ _nc_gettime(bool first)
+@@ -388,7 +388,7 @@
+ * then come back for more.
+ */
+ if (result == 0 && milliseconds > 100) {
+- napms(100);
++ napms(100); /* FIXME: this won't be right if I recur! */
+ milliseconds -= 100;
+ goto retry;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/tty/tty_display.h ncurses-5.3.20030906.orig/ncurses/tty/tty_display.h
+--- ncurses-5.3/ncurses/tty/tty_display.h Sat Dec 9 20:27:01 2000
++++ ncurses-5.3.20030906.orig/ncurses/tty/tty_display.h Fri Sep 12 16:41:41 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,6 +29,9 @@
+ #ifndef TTY_DISPLAY_H
+ #define TTY_DISPLAY_H 1
+
++/*
++ * $Id: tty_display.h,v 1.5 2003/08/02 22:59:07 Philippe.Blain 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);
+@@ -111,7 +114,7 @@
+ : ((enter_insert_mode && exit_insert_mode) \
+ ? D->_smir_cost + D->_rmir_cost + (D->_ip_cost * count) \
+ : ((insert_character != 0) \
+- ? (D->_ich1_cost * count) \
++ ? ((D->_ich1_cost + D->_ip_cost) * count) \
+ : INFINITY)))
+
+ #if USE_XMC_SUPPORT
+diff -urNd -urNd ncurses-5.3/ncurses/tty/tty_update.c ncurses-5.3.20030906.orig/ncurses/tty/tty_update.c
+--- ncurses-5.3/ncurses/tty/tty_update.c Sat Sep 28 15:41:55 2002
++++ ncurses-5.3.20030906.orig/ncurses/tty/tty_update.c Fri Sep 12 16:42:24 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,6 +29,7 @@
+ /****************************************************************************
+ * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
+ * and: Eric S. Raymond <esr@snark.thyrsus.com> *
++ * and: Thomas E. Dickey 1996-2002 *
+ ****************************************************************************/
+
+ /*-----------------------------------------------------------------
+@@ -72,7 +73,7 @@
+
+ #include <term.h>
+
+-MODULE_ID("$Id: tty_update.c,v 1.177 2002/09/28 20:41:55 tom Exp $")
++MODULE_ID("$Id: tty_update.c,v 1.199 2003/08/23 21:25:08 tom Exp $")
+
+ /*
+ * This define controls the line-breakout optimization. Every once in a
+@@ -165,61 +166,90 @@
+ static inline void
+ GoTo(int const row, int const col)
+ {
+- attr_t oldattr = SP->_current_attr;
+-
+ TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)",
+ row, col, SP->_cursrow, SP->_curscol));
+
+ position_check(SP->_cursrow, SP->_curscol, "GoTo");
+
+- /*
+- * Force restore even if msgr is on when we're in an alternate
+- * character set -- these have a strong tendency to screw up the
+- * CR & LF used for local character motions!
+- */
+- if ((oldattr & A_ALTCHARSET)
+- || (oldattr && !move_standout_mode)) {
+- TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
+- oldattr, _traceattr(oldattr)));
+- vidattr(A_NORMAL);
+- }
+-
+ mvcur(SP->_cursrow, SP->_curscol, row, col);
+- SP->_cursrow = row;
+- SP->_curscol = col;
+ position_check(SP->_cursrow, SP->_curscol, "GoTo2");
+ }
+
+ static inline void
+ PutAttrChar(CARG_CH_T ch)
+ {
++ int chlen = 1;
++ NCURSES_CH_T my_ch;
+ PUTC_DATA;
+ NCURSES_CH_T tilde;
++ NCURSES_ATTR_T attr = AttrOfD(ch);
++
++ TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
++ _tracech_t(ch),
++ SP->_cursrow, SP->_curscol));
++#if USE_WIDEC_SUPPORT
++ /*
++ * If this is not a valid character, there is nothing more to do.
++ */
++ if (isnac(CHDEREF(ch)))
++ return;
++ /*
++ * Determine the number of character cells which the 'ch' value will use
++ * on the screen. It should be at least one.
++ */
++ if ((chlen = wcwidth(CharOf(CHDEREF(ch)))) <= 0) {
++ static NCURSES_CH_T blank = NewChar(BLANK_TEXT);
++
++ ch = CHREF(blank);
++ chlen = 1;
++ TR(TRACE_CHARPUT, ("forced to blank"));
++ }
++#endif
+
++ if ((attr & A_ALTCHARSET)
++ && SP->_acs_map != 0
++ && CharOfD(ch) < ACS_LEN) {
++ my_ch = CHDEREF(ch); /* work around const param */
++#if USE_WIDEC_SUPPORT
++ /*
++ * This is crude & ugly, but works most of the time. It checks if the
++ * acs_chars string specified that we have a mapping for this
++ * character, and uses the wide-character mapping when we expect the
++ * normal one to be broken (by mis-design ;-).
++ */
++ if (SP->_screen_acs_fix
++ && SP->_acs_map[CharOf(my_ch)] & A_ALTCHARSET) {
++ attr &= ~(A_ALTCHARSET);
++ my_ch = _nc_wacs[CharOf(my_ch)];
++ }
++#endif
++ if (attr & A_ALTCHARSET) {
++ chtype temp = UChar(SP->_acs_map[CharOfD(ch)]);
++ if (temp != 0)
++ SetChar(my_ch, temp, attr);
++ RemAttr(my_ch, A_ALTCHARSET);
++ }
++ ch = CHREF(my_ch);
++ }
+ if (tilde_glitch && (CharOfD(ch) == L('~'))) {
+- SetChar(tilde, L('`'), AttrOfD(ch));
++ SetChar(tilde, L('`'), attr);
+ ch = CHREF(tilde);
+ }
+
+- TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
+- _tracech_t(ch),
+- SP->_cursrow, SP->_curscol));
+- UpdateAttrs(AttrOfD(ch));
++ UpdateAttrs(attr);
+ #if !USE_WIDEC_SUPPORT
+ /* FIXME - we do this special case for signal handling, should see how to
+ * make it work for wide characters.
+ */
+ if (SP->_outch != 0) {
+- SP->_outch((int) ch);
++ SP->_outch(UChar(ch));
+ } else
+ #endif
+ {
+ PUTC(CHDEREF(ch), SP->_ofp); /* macro's fastest... */
+-#ifdef TRACE
+- _nc_outchars++;
+-#endif /* TRACE */
++ TRACE_OUTCHARS(1);
+ }
+- SP->_curscol++;
++ SP->_curscol += chlen;
+ if (char_padding) {
+ TPUTS_TRACE("char_padding");
+ putp(char_padding);
+@@ -456,7 +486,8 @@
+ rep_count--;
+
+ UpdateAttrs(AttrOf(ntext0));
+- putp(tparm(repeat_char, CharOf(ntext0), rep_count));
++ tputs(tparm(repeat_char, CharOf(ntext0), rep_count),
++ rep_count, _nc_outch);
+ SP->_curscol += rep_count;
+
+ if (wrap_possible)
+@@ -888,12 +919,12 @@
+ if (needclear) {
+ UpdateAttrs(AttrOf(blank));
+ TPUTS_TRACE("clr_eol");
+- if (SP->_el_cost > (screen_columns - SP->_curscol)) {
++ if (clr_eol && SP->_el_cost <= (screen_columns - SP->_curscol)) {
++ putp(clr_eol);
++ } else {
+ int count = (screen_columns - SP->_curscol);
+ while (count-- > 0)
+ PutChar(CHREF(blank));
+- } else {
+- putp(clr_eol);
+ }
+ }
+ }
+@@ -939,7 +970,7 @@
+ int col;
+ int top = total;
+ int last = min(screen_columns, newscr->_maxx + 1);
+- NCURSES_CH_T blank = ClrBlank(stdscr);
++ NCURSES_CH_T blank = newscr->_line[total - 1].text[last - 1];
+ bool ok;
+
+ if (clr_eos && can_clear_with(CHREF(blank))) {
+@@ -959,17 +990,16 @@
+ }
+
+ /* don't use clr_eos for just one line if clr_eol available */
+- if (top < total - 1 || (top < total && !clr_eol && !clr_bol)) {
++ if (top < total) {
+ GoTo(top, 0);
+ ClrToEOS(blank);
+- total = top;
+ if (SP->oldhash && SP->newhash) {
+ for (row = top; row < screen_lines; row++)
+ SP->oldhash[row] = SP->newhash[row];
+ }
+ }
+ }
+- return total;
++ return top;
+ }
+
+ #if USE_XMC_SUPPORT
+@@ -1314,7 +1344,7 @@
+
+ UpdateAttrs(AttrOf(blank));
+ TPUTS_TRACE("clr_eos");
+- putp(clr_eos);
++ tputs(clr_eos, screen_lines, _nc_outch);
+ } else if (clr_eol) {
+ SP->_cursrow = SP->_curscol = -1;
+
+@@ -1478,12 +1508,12 @@
+ GoTo(bot, 0);
+ UpdateAttrs(AttrOf(blank));
+ TPUTS_TRACE("scroll_forward");
+- tputs(scroll_forward, 0, _nc_outch);
++ putp(scroll_forward);
+ } else if (n == 1 && delete_line && bot == maxy) {
+ GoTo(top, 0);
+ UpdateAttrs(AttrOf(blank));
+ TPUTS_TRACE("delete_line");
+- tputs(delete_line, 0, _nc_outch);
++ putp(delete_line);
+ } else if (parm_index && top == miny && bot == maxy) {
+ GoTo(bot, 0);
+ UpdateAttrs(AttrOf(blank));
+@@ -1499,14 +1529,14 @@
+ UpdateAttrs(AttrOf(blank));
+ for (i = 0; i < n; i++) {
+ TPUTS_TRACE("scroll_forward");
+- tputs(scroll_forward, 0, _nc_outch);
++ putp(scroll_forward);
+ }
+ } else if (delete_line && bot == maxy) {
+ GoTo(top, 0);
+ UpdateAttrs(AttrOf(blank));
+ for (i = 0; i < n; i++) {
+ TPUTS_TRACE("delete_line");
+- tputs(delete_line, 0, _nc_outch);
++ putp(delete_line);
+ }
+ } else
+ return ERR;
+@@ -1536,12 +1566,12 @@
+ GoTo(top, 0);
+ UpdateAttrs(AttrOf(blank));
+ TPUTS_TRACE("scroll_reverse");
+- tputs(scroll_reverse, 0, _nc_outch);
++ putp(scroll_reverse);
+ } else if (n == 1 && insert_line && bot == maxy) {
+ GoTo(top, 0);
+ UpdateAttrs(AttrOf(blank));
+ TPUTS_TRACE("insert_line");
+- tputs(insert_line, 0, _nc_outch);
++ putp(insert_line);
+ } else if (parm_rindex && top == miny && bot == maxy) {
+ GoTo(top, 0);
+ UpdateAttrs(AttrOf(blank));
+@@ -1557,14 +1587,14 @@
+ UpdateAttrs(AttrOf(blank));
+ for (i = 0; i < n; i++) {
+ TPUTS_TRACE("scroll_reverse");
+- tputs(scroll_reverse, 0, _nc_outch);
++ putp(scroll_reverse);
+ }
+ } else if (insert_line && bot == maxy) {
+ GoTo(top, 0);
+ UpdateAttrs(AttrOf(blank));
+ for (i = 0; i < n; i++) {
+ TPUTS_TRACE("insert_line");
+- tputs(insert_line, 0, _nc_outch);
++ putp(insert_line);
+ }
+ } else
+ return ERR;
+@@ -1596,14 +1626,14 @@
+ UpdateAttrs(AttrOf(blank));
+ if (n == 1 && delete_line) {
+ TPUTS_TRACE("delete_line");
+- tputs(delete_line, 0, _nc_outch);
++ putp(delete_line);
+ } else if (parm_delete_line) {
+ TPUTS_TRACE("parm_delete_line");
+ tputs(tparm(parm_delete_line, n, 0), n, _nc_outch);
+ } else { /* if (delete_line) */
+ for (i = 0; i < n; i++) {
+ TPUTS_TRACE("delete_line");
+- tputs(delete_line, 0, _nc_outch);
++ putp(delete_line);
+ }
+ }
+
+@@ -1611,20 +1641,28 @@
+ UpdateAttrs(AttrOf(blank));
+ if (n == 1 && insert_line) {
+ TPUTS_TRACE("insert_line");
+- tputs(insert_line, 0, _nc_outch);
++ putp(insert_line);
+ } else if (parm_insert_line) {
+ TPUTS_TRACE("parm_insert_line");
+ tputs(tparm(parm_insert_line, n, 0), n, _nc_outch);
+ } else { /* if (insert_line) */
+ for (i = 0; i < n; i++) {
+ TPUTS_TRACE("insert_line");
+- tputs(insert_line, 0, _nc_outch);
++ putp(insert_line);
+ }
+ }
+
+ return OK;
+ }
+
++/*
++ * Note: some terminals require the cursor to be within the scrolling margins
++ * before setting them. Generally, the cursor must be at the appropriate end
++ * of the scrolling margins when issuing an indexing operation (it is not
++ * apparent whether it must also be at the left margin; we do this just to be
++ * safe). To make the related cursor movement a little faster, we use the
++ * save/restore cursor capabilities if the terminal has them.
++ */
+ NCURSES_EXPORT(int)
+ _nc_scrolln(int n, int top, int bot, int maxy)
+ /* scroll region from top to bot by n lines */
+@@ -1658,13 +1696,13 @@
+ && save_cursor && restore_cursor) {
+ cursor_saved = TRUE;
+ TPUTS_TRACE("save_cursor");
+- tputs(save_cursor, 0, _nc_outch);
++ putp(save_cursor);
+ }
+ TPUTS_TRACE("change_scroll_region");
+- tputs(tparm(change_scroll_region, top, bot), 0, _nc_outch);
++ putp(tparm(change_scroll_region, top, bot));
+ if (cursor_saved) {
+ TPUTS_TRACE("restore_cursor");
+- tputs(restore_cursor, 0, _nc_outch);
++ putp(restore_cursor);
+ } else {
+ SP->_cursrow = SP->_curscol = -1;
+ }
+@@ -1672,7 +1710,7 @@
+ res = scroll_csr_forward(n, top, bot, top, bot, blank);
+
+ TPUTS_TRACE("change_scroll_region");
+- tputs(tparm(change_scroll_region, 0, maxy), 0, _nc_outch);
++ putp(tparm(change_scroll_region, 0, maxy));
+ SP->_cursrow = SP->_curscol = -1;
+ }
+
+@@ -1686,7 +1724,7 @@
+ && (non_dest_scroll_region || (memory_below && bot == maxy))) {
+ NCURSES_CH_T blank2 = NewChar(BLANK_TEXT);
+ if (bot == maxy && clr_eos) {
+- GoTo(bot - n, 0);
++ GoTo(bot - n + 1, 0);
+ ClrToEOS(blank2);
+ } else {
+ for (i = 0; i < n; i++) {
+@@ -1704,13 +1742,13 @@
+ && save_cursor && restore_cursor) {
+ cursor_saved = TRUE;
+ TPUTS_TRACE("save_cursor");
+- tputs(save_cursor, 0, _nc_outch);
++ putp(save_cursor);
+ }
+ TPUTS_TRACE("change_scroll_region");
+- tputs(tparm(change_scroll_region, top, bot), 0, _nc_outch);
++ putp(tparm(change_scroll_region, top, bot));
+ if (cursor_saved) {
+ TPUTS_TRACE("restore_cursor");
+- tputs(restore_cursor, 0, _nc_outch);
++ putp(restore_cursor);
+ } else {
+ SP->_cursrow = SP->_curscol = -1;
+ }
+@@ -1718,7 +1756,7 @@
+ res = scroll_csr_backward(-n, top, bot, top, bot, blank);
+
+ TPUTS_TRACE("change_scroll_region");
+- tputs(tparm(change_scroll_region, 0, maxy), 0, _nc_outch);
++ putp(tparm(change_scroll_region, 0, maxy));
+ SP->_cursrow = SP->_curscol = -1;
+ }
+
+@@ -1811,8 +1849,6 @@
+ SP->_default_color = FALSE;
+
+ mvcur(SP->_cursrow, SP->_curscol, screen_lines - 1, 0);
+- SP->_cursrow = screen_lines - 1;
+- SP->_curscol = 0;
+
+ ClrToEOL(blank, TRUE);
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/charable.c ncurses-5.3.20030906.orig/ncurses/widechar/charable.c
+--- ncurses-5.3/ncurses/widechar/charable.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/ncurses/widechar/charable.c Sun Jul 20 14:02:09 2003
+@@ -0,0 +1,77 @@
++/****************************************************************************
++ * Copyright (c) 2003 Free 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. *
++ ****************************************************************************/
++
++/*
++** Support functions for wide/narrow conversion.
++*/
++
++#include <curses.priv.h>
++
++MODULE_ID("$Id: charable.c,v 1.2 2003/07/05 18:04:08 tom Exp $")
++
++NCURSES_EXPORT(bool) _nc_is_charable(wchar_t ch)
++{
++ bool result;
++#if HAVE_WCTOB
++ result = (wctob(ch) == ch);
++#else
++ result = (_nc_to_char(ch) >= 0);
++#endif
++ return result;
++}
++
++NCURSES_EXPORT(int) _nc_to_char(wint_t ch)
++{
++ int result;
++#if HAVE_WCTOB
++ result = wctob(ch);
++#elif HAVE_WCTOMB
++ char temp[MB_LEN_MAX];
++ result = wctomb(temp, ch);
++ if (strlen(temp) == 1)
++ result = UChar(temp[0]);
++ else
++ result = -1;
++#endif
++ return result;
++}
++
++NCURSES_EXPORT(wint_t) _nc_to_widechar(int ch)
++{
++ wint_t result;
++#if HAVE_BTOWC
++ result = btowc(ch);
++#elif HAVE_MBTOWC
++ char temp[2];
++ temp[0] = ch;
++ temp[1] = '\0';
++ if (mbtowc((wchar_t *) (&result), temp, 1) != 1)
++ result = WEOF;
++#endif
++ return result;
++}
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/lib_cchar.c ncurses-5.3.20030906.orig/ncurses/widechar/lib_cchar.c
+--- ncurses-5.3/ncurses/widechar/lib_cchar.c Sat Aug 10 17:27:37 2002
++++ ncurses-5.3.20030906.orig/ncurses/widechar/lib_cchar.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2002,2003 Free 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.6 2002/08/10 22:27:37 tom Exp $")
++MODULE_ID("$Id: lib_cchar.c,v 1.8 2003/05/25 00:07:41 tom Exp $")
+
+ /*
+ * The SuSv2 description leaves some room for interpretation. We'll assume wch
+@@ -55,26 +55,28 @@
+ wcval, _nc_viswbuf(wch), attrs, color_pair, opts));
+
+ if (opts != NULL || (len = wcslen(wch)) > CCHARW_MAX
+- || (len > 0 && wcwidth(wch[0]) < 0)) {
++ || (len > 1 && wcwidth(wch[0]) < 0)) {
+ code = ERR;
+ } else {
+
++ /*
++ * If we have a following spacing-character, stop at that point. We
++ * are only interested in adding non-spacing characters.
++ */
+ for (i = 1; i < len; ++i) {
+ if (wcwidth(wch[i]) != 0) {
+- code = ERR;
++ len = i;
+ break;
+ }
+ }
+
+- if (code != ERR) {
+- memset(wcval, 0, sizeof(*wcval));
++ memset(wcval, 0, sizeof(*wcval));
+
+- if (len != 0) {
+- SetAttr(*wcval, attrs | color_pair);
+- memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
+- TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
+- _tracecchar_t(wcval)));
+- }
++ if (len != 0) {
++ SetAttr(*wcval, attrs | color_pair);
++ memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
++ TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
++ _tracecchar_t(wcval)));
+ }
+ }
+
+@@ -100,6 +102,8 @@
+
+ if (wch == NULL) {
+ code = len;
++ } else if (attrs == 0 || color_pair == 0) {
++ code = ERR;
+ } else if (len >= 0) {
+ *attrs = AttrOf(*wcval);
+ *color_pair = AttrOf(*wcval) & A_COLOR;
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/lib_get_wstr.c ncurses-5.3.20030906.orig/ncurses/widechar/lib_get_wstr.c
+--- ncurses-5.3/ncurses/widechar/lib_get_wstr.c Sat Jul 20 14:28:29 2002
++++ ncurses-5.3.20030906.orig/ncurses/widechar/lib_get_wstr.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2002,2003 Free 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 <term.h>
+
+-MODULE_ID("$Id: lib_get_wstr.c,v 1.4 2002/07/20 19:28:29 tom Exp $")
++MODULE_ID("$Id: lib_get_wstr.c,v 1.6 2003/05/17 21:33:03 tom Exp $")
+
+ /*
+ * This wipes out the last character, no matter whether it was a tab, control
+@@ -109,6 +109,25 @@
+ wrefresh(win);
+
+ while ((code = wget_wch(win, &ch)) != ERR) {
++ /*
++ * Map special characters into key-codes.
++ */
++ if (ch == '\r')
++ ch = '\n';
++ if (ch == '\n') {
++ code = KEY_CODE_YES;
++ ch = KEY_ENTER;
++ }
++ if (ch < KEY_MIN) {
++ if (ch == erasec) {
++ ch = KEY_BACKSPACE;
++ code = KEY_CODE_YES;
++ }
++ if (ch == killc) {
++ ch = KEY_EOL;
++ code = KEY_CODE_YES;
++ }
++ }
+ if (code == KEY_CODE_YES) {
+ /*
+ * Some terminals (the Wyse-50 is the most common) generate a \n
+@@ -116,21 +135,18 @@
+ * choice whether to set kcud=\n for wget_wch(); terminating
+ * *getn_wstr() with \n should work either way.
+ */
+- if (ch == '\n'
+- || ch == '\r'
+- || ch == KEY_DOWN
+- || ch == KEY_ENTER) {
++ if (ch == KEY_DOWN || ch == KEY_ENTER) {
+ if (oldecho == TRUE
+ && win->_cury == win->_maxy
+ && win->_scroll)
+ wechochar(win, (chtype) '\n');
+ break;
+ }
+- if (ch == erasec || ch == KEY_LEFT || ch == KEY_BACKSPACE) {
++ if (ch == KEY_LEFT || ch == KEY_BACKSPACE) {
+ if (tmpstr > oldstr) {
+ tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+ }
+- } else if (ch == killc) {
++ } else if (ch == KEY_EOL) {
+ while (tmpstr > oldstr) {
+ tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+ }
+@@ -141,6 +157,7 @@
+ beep();
+ } else {
+ *tmpstr++ = ch;
++ *tmpstr = 0;
+ if (oldecho == TRUE) {
+ int oldy = win->_cury;
+ cchar_t tmp;
+@@ -193,7 +210,7 @@
+ *tmpstr = 0;
+ if (code == ERR) {
+ if (tmpstr == oldstr) {
+- *tmpstr++ = (wchar_t)WEOF;
++ *tmpstr++ = (wchar_t) WEOF;
+ *tmpstr = 0;
+ }
+ returnCode(ERR);
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/lib_ins_wch.c ncurses-5.3.20030906.orig/ncurses/widechar/lib_ins_wch.c
+--- ncurses-5.3/ncurses/widechar/lib_ins_wch.c Sun Mar 10 16:25:06 2002
++++ ncurses-5.3.20030906.orig/ncurses/widechar/lib_ins_wch.c Tue May 13 20:08:22 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2002,2003 Free 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,16 +39,16 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_ins_wch.c,v 1.1 2002/03/10 22:25:06 tom Exp $")
++MODULE_ID("$Id: lib_ins_wch.c,v 1.3 2003/03/29 21:52:29 tom Exp $")
+
+-NCURSES_EXPORT(int)
+-wins_wch(WINDOW *win, const cchar_t * wch)
++/*
++ * Insert the given character, updating the current location to simplify
++ * inserting a string.
++ */
++static void
++_nc_insert_wch(WINDOW *win, const cchar_t * wch)
+ {
+- int code = ERR;
+-
+- T((T_CALLED("wins_wch(%p, %s)"), win, _tracecchar_t(wch)));
+-
+- if (win) {
++ if (win->_curx <= win->_maxx) {
+ struct ldat *line = &(win->_line[win->_cury]);
+ NCURSES_CH_T *end = &(line->text[win->_curx]);
+ NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
+@@ -59,6 +59,71 @@
+ *temp1-- = *temp2--;
+
+ *temp1 = _nc_render(win, *wch);
++
++ win->_curx++;
++ }
++}
++
++NCURSES_EXPORT(int)
++wins_wch(WINDOW *win, const cchar_t * wch)
++{
++ NCURSES_SIZE_T oy;
++ NCURSES_SIZE_T ox;
++ int code = ERR;
++
++ T((T_CALLED("wins_wch(%p, %s)"), win, _tracecchar_t(wch)));
++
++ if (win != 0) {
++ oy = win->_cury;
++ ox = win->_curx;
++
++ _nc_insert_wch(win, wch);
++
++ win->_curx = ox;
++ win->_cury = oy;
++ _nc_synchook(win);
++ code = OK;
++ }
++ returnCode(code);
++}
++
++NCURSES_EXPORT(int)
++wins_nwstr(WINDOW *win, const wchar_t * wstr, int n)
++{
++ int code = ERR;
++ NCURSES_SIZE_T oy;
++ NCURSES_SIZE_T ox;
++ const wchar_t *cp;
++
++ T((T_CALLED("wins_nwstr(%p,%s,%d)"), win, _nc_viswbufn(wstr, n), n));
++
++ if (win != 0
++ && wstr != 0) {
++ if (n < 1)
++ n = wcslen(wstr);
++ if (n > 0) {
++ oy = win->_cury;
++ ox = win->_curx;
++ for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
++ if (wcwidth(*cp) > 1) {
++ cchar_t tmp_cchar;
++ wchar_t tmp_wchar = *cp;
++ memset(&tmp_cchar, 0, sizeof(tmp_cchar));
++ (void) setcchar(&tmp_cchar,
++ &tmp_wchar,
++ WA_NORMAL,
++ 0,
++ (void *) 0);
++ _nc_insert_wch(win, &tmp_cchar);
++ } else {
++ _nc_insert_ch(win, *cp); /* tabs, other ASCII stuff */
++ }
++ }
++
++ win->_curx = ox;
++ win->_cury = oy;
++ _nc_synchook(win);
++ }
+ code = OK;
+ }
+ returnCode(code);
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/lib_slk_wset.c ncurses-5.3.20030906.orig/ncurses/widechar/lib_slk_wset.c
+--- ncurses-5.3/ncurses/widechar/lib_slk_wset.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/ncurses/widechar/lib_slk_wset.c Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,146 @@
++/****************************************************************************
++ * Copyright (c) 2003 Free 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, 2003 *
++ ****************************************************************************/
++
++/*
++ * lib_slk_wset.c
++ * Set soft label text.
++ */
++#include <curses.priv.h>
++#include <wctype.h>
++
++MODULE_ID("$Id: lib_slk_wset.c,v 1.4 2003/06/07 22:17:43 tom Exp $")
++
++NCURSES_EXPORT(int)
++slk_wset(int i, const wchar_t * astr, int format)
++{
++ static wchar_t empty[] =
++ {L'\0'};
++ int result = ERR;
++ SLK *slk = SP->_slk;
++ int offset;
++ size_t arglen;
++ const wchar_t *p;
++
++ T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format));
++
++ if (astr == 0)
++ astr = empty;
++ arglen = wcslen(astr);
++ while (iswspace(*astr)) {
++ --arglen;
++ ++astr; /* skip over leading spaces */
++ }
++ p = astr;
++ while (iswprint(*p))
++ p++; /* The first non-print stops */
++
++ arglen = (size_t) (p - astr);
++
++ if (slk != NULL &&
++ i >= 1 &&
++ i <= slk->labcnt &&
++ format >= 0 &&
++ format <= 2) {
++ char *new_text;
++ size_t n;
++ size_t used = 0;
++ int mycols;
++ mbstate_t state;
++
++ --i; /* Adjust numbering of labels */
++
++ /*
++ * Reduce the actual number of columns to fit in the label field.
++ */
++ while (arglen != 0 && wcswidth(astr, arglen) > slk->maxlen) {
++ --arglen;
++ }
++ mycols = wcswidth(astr, arglen);
++
++ /*
++ * translate the wide-character string to multibyte form.
++ */
++ memset(&state, 0, sizeof(state));
++
++ if ((new_text = (char *) _nc_doalloc(0, MB_LEN_MAX * arglen)) == 0)
++ returnCode(ERR);
++
++ for (n = 0; n < arglen; ++n) {
++ used += wcrtomb(new_text + used, astr[n], &state);
++ }
++ new_text[used] = '\0';
++
++ if (used >= (size_t) (slk->maxlen + 1)) {
++ if ((slk->ent[i].ent_text = (char *) _nc_doalloc(slk->ent[i].ent_text,
++ used + 1)) == 0)
++ returnCode(ERR);
++ if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text,
++ used + 1)) == 0)
++ returnCode(ERR);
++ }
++
++ (void) strcpy(slk->ent[i].ent_text, new_text);
++ free(new_text);
++
++ sprintf(slk->ent[i].form_text, "%*s", (size_t) slk->maxlen, " ");
++
++ switch (format) {
++ default:
++ case 0: /* left-aligned */
++ offset = 0;
++ break;
++ case 1: /* centered */
++ offset = (slk->maxlen - mycols) / 2;
++ break;
++ case 2: /* right-aligned */
++ offset = slk->maxlen - mycols;
++ break;
++ }
++ if (offset < 0)
++ offset = 0;
++ strcpy(slk->ent[i].form_text + offset,
++ slk->ent[i].ent_text);
++ /*
++ * Pad the display with blanks on the right, unless it is already
++ * right-aligned.
++ */
++ if (format != 2 && mycols < slk->maxlen) {
++ sprintf(slk->ent[i].form_text + offset + used,
++ "%*s",
++ slk->maxlen - (mycols - offset),
++ " ");
++ }
++ slk->ent[i].dirty = TRUE;
++ result = OK;
++ }
++ returnCode(result);
++}
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/lib_unget_wch.c ncurses-5.3.20030906.orig/ncurses/widechar/lib_unget_wch.c
+--- ncurses-5.3/ncurses/widechar/lib_unget_wch.c Sat Jun 29 16:11:02 2002
++++ ncurses-5.3.20030906.orig/ncurses/widechar/lib_unget_wch.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002 Free Software Foundation, Inc. *
++ * Copyright (c) 2002,2003 Free 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.3 2002/06/29 21:11:02 tom Exp $")
++MODULE_ID("$Id: lib_unget_wch.c,v 1.5 2003/07/05 19:46:51 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ unget_wch(const wchar_t wch)
+@@ -49,25 +49,29 @@
+ size_t length;
+ int n;
+
+- T((T_CALLED("unget_wch(%#lx)"), wch));
++ T((T_CALLED("unget_wch(%#lx)"), (unsigned long) wch));
+
+ memset(&state, 0, sizeof(state));
+ length = wcrtomb(0, wch, &state);
+
+ if (length != (size_t) (-1)
+ && length != 0) {
+- char *string = malloc(length);
++ char *string;
+
+- memset(&state, 0, sizeof(state));
+- wcrtomb(string, wch, &state);
++ if ((string = (char *) malloc(length)) != 0) {
++ memset(&state, 0, sizeof(state));
++ wcrtomb(string, wch, &state);
+
+- for (n = (int) (length - 1); n >= 0; --n) {
+- if (ungetch(string[n]) != OK) {
+- result = ERR;
+- break;
++ for (n = (int) (length - 1); n >= 0; --n) {
++ if (ungetch(string[n]) != OK) {
++ result = ERR;
++ break;
++ }
+ }
++ free(string);
++ } else {
++ result = ERR;
+ }
+- free(string);
+ } else {
+ result = ERR;
+ }
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/lib_wacs.c ncurses-5.3.20030906.orig/ncurses/widechar/lib_wacs.c
+--- ncurses-5.3/ncurses/widechar/lib_wacs.c Sat Aug 31 14:44:17 2002
++++ ncurses-5.3.20030906.orig/ncurses/widechar/lib_wacs.c Tue May 13 20:08:22 2003
+@@ -33,23 +33,10 @@
+ #include <curses.priv.h>
+ #include <term.h>
+
+-MODULE_ID("$Id: lib_wacs.c,v 1.5 2002/08/31 19:44:17 tom Exp $")
++MODULE_ID("$Id: lib_wacs.c,v 1.6 2002/12/21 12:30:19 tom Exp $")
+
+ NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0;
+
+-static int
+-_nc_unicode_locale(void)
+-{
+- char *s;
+- if (((s = getenv("LC_ALL")) != 0 && *s != '\0')
+- || ((s = getenv("LC_ALL")) != 0 && *s != '\0')
+- || ((s = getenv("LC_ALL")) != 0 && *s != '\0')) {
+- if (strstr(s, ".UTF-8") != 0)
+- return 1;
+- }
+- return 0;
+-}
+-
+ NCURSES_EXPORT(void)
+ _nc_init_wacs(void)
+ {
+diff -urNd -urNd ncurses-5.3/ncurses/widechar/lib_wunctrl.c ncurses-5.3.20030906.orig/ncurses/widechar/lib_wunctrl.c
+--- ncurses-5.3/ncurses/widechar/lib_wunctrl.c Sat Sep 22 14:18:02 2001
++++ ncurses-5.3.20030906.orig/ncurses/widechar/lib_wunctrl.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001 Free Software Foundation, Inc. *
++ * Copyright (c) 2001,2003 Free 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 @@
+
+ #if USE_WIDEC_SUPPORT
+
+-MODULE_ID("$Id: lib_wunctrl.c,v 1.6 2001/09/22 19:18:02 tom Exp $")
++MODULE_ID("$Id: lib_wunctrl.c,v 1.7 2003/07/05 17:01:43 tom Exp $")
+
+ NCURSES_EXPORT(wchar_t *)
+ wunctrl(cchar_t * wc)
+@@ -46,8 +46,8 @@
+
+ if (Charable(*wc)) {
+ const char *p;
+- for (p = unctrl(wctob(CharOf(*wc))), sp = str; *p;)
+- *sp++ = btowc(*p++);
++ for (p = unctrl(_nc_to_char(CharOf(*wc))), sp = str; *p;)
++ *sp++ = _nc_to_widechar(*p++);
+ return str;
+ } else
+ return wc->chars;
+diff -urNd -urNd ncurses-5.3/panel/Makefile.in ncurses-5.3.20030906.orig/panel/Makefile.in
+--- ncurses-5.3/panel/Makefile.in Sat Jan 19 18:41:18 2002
++++ ncurses-5.3.20030906.orig/panel/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.41 2002/01/20 00:41:18 tom Exp $
++# $Id: Makefile.in,v 1.45 2003/08/23 23:26:21 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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-2002
+ #
+ # Makefile for panels source code.
+ #
+@@ -56,6 +56,11 @@
+ datadir = @datadir@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
++LIBTOOL_INSTALL = @LIB_INSTALL@
++LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+
+ INSTALL = @INSTALL@
+ INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
+@@ -72,8 +77,7 @@
+ CPP = @CPP@
+ CFLAGS = @CFLAGS@
+
+-CPPFLAGS = @CPPFLAGS@ -I@top_srcdir@/ncurses \
+- -DHAVE_CONFIG_H
++CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -85,7 +89,7 @@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+-LINK = $(LIBTOOL) $(CC)
++LINK = $(LIBTOOL_LINK) $(CC)
+ LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
+
+ SHLIB_DIRS = -L../lib
+@@ -98,7 +102,7 @@
+ REL_VERSION = @cf_cv_rel_version@
+ ABI_VERSION = @cf_cv_abi_version@
+
+-RANLIB = @RANLIB@
++RANLIB = @LIB_PREP@
+
+ IMPORT_LIB = @IMPORT_LIB@
+ SHARED_LIB = @SHARED_LIB@
+diff -urNd -urNd ncurses-5.3/progs/MKtermsort.sh ncurses-5.3.20030906.orig/progs/MKtermsort.sh
+--- ncurses-5.3/progs/MKtermsort.sh Sat Jun 29 15:02:48 2002
++++ ncurses-5.3.20030906.orig/progs/MKtermsort.sh Tue May 13 20:08:22 2003
+@@ -1,10 +1,10 @@
+ #!/bin/sh
+-# $Id: MKtermsort.sh,v 1.8 2002/06/29 20:02:48 tom Exp $
++# $Id: MKtermsort.sh,v 1.9 2003/01/11 22:23:50 tom Exp $
+ #
+ # MKtermsort.sh -- generate indirection vectors for the various sort methods
+ #
+ ##############################################################################
+-# Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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,7 +47,7 @@
+
+ data=data$$
+ trap 'rm -f $data' 1 2 5 15
+-sed -e 's/[ ]\+/ /g' < $DATA >$data
++sed -e 's/[ ][ ]*/ /g' < $DATA >$data
+ DATA=$data
+
+ echo "/*";
+diff -urNd -urNd ncurses-5.3/progs/Makefile.in ncurses-5.3.20030906.orig/progs/Makefile.in
+--- ncurses-5.3/progs/Makefile.in Sat Dec 8 12:48:01 2001
++++ ncurses-5.3.20030906.orig/progs/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.56 2001/12/08 18:48:01 tom Exp $
++# $Id: Makefile.in,v 1.60 2003/08/30 21:22:14 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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-2003
+ #
+ # Makefile for ncurses source code.
+ #
+@@ -60,6 +60,11 @@
+ datadir = @datadir@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
++LIBTOOL_INSTALL = @LIB_INSTALL@
++LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+
+ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -73,8 +78,7 @@
+ CFLAGS = @CFLAGS@
+
+ INCDIR = $(srcdir)/../include
+-CPPFLAGS = -I../progs -I$(srcdir) @CPPFLAGS@ \
+- -DHAVE_CONFIG_H
++CPPFLAGS = -I../progs -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -87,15 +91,15 @@
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+ LD = @LD@
+-LINK = @LINK_PROGS@ $(LIBTOOL) $(CC)
++LINK = @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
+ LDFLAGS = @EXTRA_LDFLAGS@ \
+ @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
+
+-LDFLAGS_LIBTOOL = $(LDFLAGS)
+-LDFLAGS_NORMAL = $(LDFLAGS)
+-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
+-LDFLAGS_PROFILE = $(LDFLAGS) -pg
+-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
++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_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
+
+@@ -150,31 +154,31 @@
+ echo "#define PROG_INIT \"$(actual_init)\"" >>$@
+
+ install.progs: $(AUTO_SRC) $(PROGS) $(DESTDIR)$(bindir)
+-@MAKE_TERMINFO@ $(LIBTOOL) $(INSTALL_PROGRAM) tic$x $(DESTDIR)$(bindir)/$(actual_tic)
+-@MAKE_TERMINFO@ $(LIBTOOL) $(INSTALL_PROGRAM) toe$x $(DESTDIR)$(bindir)/$(actual_toe)
++@MAKE_TERMINFO@ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) tic$x $(DESTDIR)$(bindir)/$(actual_tic)
++@MAKE_TERMINFO@ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) toe$x $(DESTDIR)$(bindir)/$(actual_toe)
+ @MAKE_TERMINFO@ @echo "linking $(actual_infotocap) to $(actual_tic)"
+ @MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
+ @MAKE_TERMINFO@ (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_infotocap))
+ @MAKE_TERMINFO@ @echo "linking $(actual_captoinfo) to $(actual_tic)"
+ @MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo)
+ @MAKE_TERMINFO@ (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_captoinfo))
+- $(LIBTOOL) $(INSTALL_PROGRAM) infocmp$x $(DESTDIR)$(bindir)/$(actual_infocmp)
+- $(LIBTOOL) $(INSTALL_PROGRAM) clear$x $(DESTDIR)$(bindir)/$(actual_clear)
+- $(LIBTOOL) $(INSTALL_PROGRAM) tput$x $(DESTDIR)$(bindir)/$(actual_tput)
+- $(LIBTOOL) $(INSTALL_PROGRAM) tset$x $(DESTDIR)$(bindir)/$(actual_tset)
++ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) infocmp$x $(DESTDIR)$(bindir)/$(actual_infocmp)
++ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) clear$x $(DESTDIR)$(bindir)/$(actual_clear)
++ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) tput$x $(DESTDIR)$(bindir)/$(actual_tput)
++ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) tset$x $(DESTDIR)$(bindir)/$(actual_tset)
+ @echo "linking $(actual_reset) to $(actual_tset)"
+ -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
+ (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tset) $(actual_reset))
+
+ uninstall.progs:
+-@MAKE_TERMINFO@ -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tic)
+-@MAKE_TERMINFO@ -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_toe)
++@MAKE_TERMINFO@ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tic)
++@MAKE_TERMINFO@ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_toe)
+ @MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo)
+ @MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
+- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_infocmp)
+- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_clear)
+- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tput)
+- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tset)
++ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_infocmp)
++ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_clear)
++ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tput)
++ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tset)
+ -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
+
+ $(DESTDIR)$(bindir) :
+@@ -225,7 +229,7 @@
+ @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_DEFAULT) -o $@
+
+ termsort.c: $(srcdir)/MKtermsort.sh
+- sh -c "$(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@" >$@
++ sh $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
+
+ #
+ # Utility productions start here
+diff -urNd -urNd ncurses-5.3/progs/dump_entry.c ncurses-5.3.20030906.orig/progs/dump_entry.c
+--- ncurses-5.3/progs/dump_entry.c Sun Sep 1 12:54:43 2002
++++ ncurses-5.3.20030906.orig/progs/dump_entry.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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.64 2002/09/01 17:54:43 tom Exp $")
++MODULE_ID("$Id: dump_entry.c,v 1.66 2003/05/24 22:43:59 tom Exp $")
+
+ #define INDENT 8
+ #define DISCARD(string) string = ABSENT_STRING
+@@ -913,15 +913,23 @@
+ */
+ char *oldsgr = set_attributes;
+ char *oldacsc = acs_chars;
+- set_attributes = ABSENT_STRING;
+- SHOW_WHY("# (sgr removed to fit entry within %d bytes)\n",
+- critlen);
+- if ((len = FMT_ENTRY()) > critlen) {
+- acs_chars = ABSENT_STRING;
+- SHOW_WHY("# (acsc removed to fit entry within %d bytes)\n",
++ bool changed = FALSE;
++
++ if (VALID_STRING(set_attributes)) {
++ set_attributes = ABSENT_STRING;
++ SHOW_WHY("# (sgr removed to fit entry within %d bytes)\n",
+ critlen);
++ changed = TRUE;
+ }
+- if ((len = FMT_ENTRY()) > critlen) {
++ if (!changed || ((len = FMT_ENTRY()) > critlen)) {
++ if (VALID_STRING(acs_chars)) {
++ acs_chars = ABSENT_STRING;
++ SHOW_WHY("# (acsc removed to fit entry within %d bytes)\n",
++ critlen);
++ changed = TRUE;
++ }
++ }
++ if (!changed || ((len = FMT_ENTRY()) > critlen)) {
+ int oldversion = tversion;
+
+ tversion = V_BSD;
+diff -urNd -urNd ncurses-5.3/progs/infocmp.c ncurses-5.3.20030906.orig/progs/infocmp.c
+--- ncurses-5.3/progs/infocmp.c Sat Oct 5 20:13:04 2002
++++ ncurses-5.3.20030906.orig/progs/infocmp.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 <term_entry.h>
+ #include <dump_entry.h>
+
+-MODULE_ID("$Id: infocmp.c,v 1.68 2002/10/06 01:13:04 tom Exp $")
++MODULE_ID("$Id: infocmp.c,v 1.70 2003/05/24 21:05:47 tom Exp $")
+
+ #define L_CURL "{"
+ #define R_CURL "}"
+@@ -120,7 +120,7 @@
+ ***************************************************************************/
+
+ static int
+-capcmp(int idx, const char *s, const char *t)
++capcmp(unsigned idx, const char *s, const char *t)
+ /* capability comparison function */
+ {
+ if (!VALID_STRING(s) && !VALID_STRING(t))
+@@ -248,7 +248,7 @@
+ entryeq(TERMTYPE * t1, TERMTYPE * t2)
+ /* are two entries equivalent? */
+ {
+- int i;
++ unsigned i;
+
+ for (i = 0; i < NUM_BOOLEANS(t1); i++)
+ if (t1->Booleans[i] != t2->Booleans[i])
+@@ -268,7 +268,7 @@
+ #define TIC_EXPAND(result) _nc_tic_expand(result, outform==F_TERMINFO, numbers)
+
+ static void
+-print_uses(ENTRY * ep, FILE * fp)
++print_uses(ENTRY * ep, FILE *fp)
+ /* print an entry's use references */
+ {
+ int i;
+@@ -739,7 +739,7 @@
+ (void) fputc('\n', stderr);
+ }
+ }
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+
+ heads[filecount] = _nc_head;
+@@ -936,7 +936,7 @@
+ else
+ fprintf(stderr, "%s\n", tbl[n]);
+ }
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+
+ static char *
+@@ -975,7 +975,7 @@
+ static void
+ dump_initializers(TERMTYPE * term)
+ {
+- int n;
++ unsigned n;
+ int size;
+ const char *str = 0;
+
+@@ -1145,7 +1145,7 @@
+
+ if (temp == 0 || temp == optarg || *temp != 0) {
+ fprintf(stderr, "Expected a number, not \"%s\"\n", optarg);
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+ return (int) value;
+ }
+diff -urNd -urNd ncurses-5.3/progs/tic.c ncurses-5.3.20030906.orig/progs/tic.c
+--- ncurses-5.3/progs/tic.c Sat Oct 5 14:59:41 2002
++++ ncurses-5.3.20030906.orig/progs/tic.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -45,7 +45,7 @@
+ #include <term_entry.h>
+ #include <transform.h>
+
+-MODULE_ID("$Id: tic.c,v 1.102 2002/10/05 19:59:41 tom Exp $")
++MODULE_ID("$Id: tic.c,v 1.107 2003/07/19 20:48:24 tom Exp $")
+
+ const char *_nc_progname = "tic";
+
+@@ -58,7 +58,7 @@
+ static void (*save_check_termtype) (TERMTYPE *);
+ static void check_termtype(TERMTYPE * tt);
+
+-static const char usage_string[] = "[-V] [-v[n]] [-e names] [-CILNRTcfrswx1] source-file\n";
++static const char usage_string[] = "[-V] [-v[n]] [-e names] [-o dir] [-R name] [-CILNTcfrswx1] source-file\n";
+
+ static void
+ cleanup(void)
+@@ -79,7 +79,7 @@
+ {
+ perror(msg);
+ cleanup();
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+
+ static void
+@@ -126,7 +126,7 @@
+ fputs(tbl[j], stderr);
+ putc('\n', stderr);
+ }
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+
+ #define L_BRACE '{'
+@@ -317,12 +317,12 @@
+
+ if (fp == 0) {
+ fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+ if (fstat(fileno(fp), &sb) < 0
+ || (sb.st_mode & S_IFMT) != S_IFREG) {
+ fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+ return fp;
+ }
+@@ -769,6 +769,205 @@
+ #define CUR tp->
+
+ /*
++ * Check if the alternate character-set capabilities are consistent.
++ */
++static void
++check_acs(TERMTYPE * tp)
++{
++ if (VALID_STRING(acs_chars)) {
++ const char *boxes = "lmkjtuvwqxn";
++ char mapped[256];
++ char missing[256];
++ const char *p;
++ char *q;
++
++ memset(mapped, 0, sizeof(mapped));
++ for (p = acs_chars; *p != '\0'; p += 2) {
++ if (p[1] == '\0') {
++ _nc_warning("acsc has odd number of characters");
++ break;
++ }
++ mapped[UChar(p[0])] = p[1];
++ }
++ if (mapped['I'] && !mapped['i']) {
++ _nc_warning("acsc refers to 'I', which is probably an error");
++ }
++ for (p = boxes, q = missing; *p != '\0'; ++p) {
++ if (!mapped[UChar(p[0])]) {
++ *q++ = p[0];
++ }
++ *q = '\0';
++ }
++ if (*missing != '\0' && strcmp(missing, boxes)) {
++ _nc_warning("acsc is missing some line-drawing mapping: %s", missing);
++ }
++ }
++}
++
++/*
++ * Check if the color capabilities are consistent
++ */
++static void
++check_colors(TERMTYPE * tp)
++{
++ if ((max_colors > 0) != (max_pairs > 0)
++ || ((max_colors > max_pairs) && (initialize_pair == 0)))
++ _nc_warning("inconsistent values for max_colors (%d) and max_pairs (%d)",
++ max_colors, max_pairs);
++
++ PAIRED(set_foreground, set_background);
++ PAIRED(set_a_foreground, set_a_background);
++ PAIRED(set_color_pair, initialize_pair);
++
++ if (VALID_STRING(set_foreground)
++ && VALID_STRING(set_a_foreground)
++ && !strcmp(set_foreground, set_a_foreground))
++ _nc_warning("expected setf/setaf to be different");
++
++ if (VALID_STRING(set_background)
++ && VALID_STRING(set_a_background)
++ && !strcmp(set_background, set_a_background))
++ _nc_warning("expected setb/setab to be different");
++}
++
++static int
++keypad_final(const char *string)
++{
++ int result = '\0';
++
++ if (VALID_STRING(string)
++ && *string++ == '\033'
++ && *string++ == 'O'
++ && strlen(string) == 1) {
++ result = *string;
++ }
++
++ return result;
++}
++
++static int
++keypad_index(const char *string)
++{
++ char *test;
++ const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */
++ int ch;
++ int result = -1;
++
++ if ((ch = keypad_final(string)) != '\0') {
++ test = strchr(list, ch);
++ if (test != 0)
++ result = (test - list);
++ }
++ return result;
++}
++
++/*
++ * Do a quick sanity-check for vt100-style keypads to see if the 5-key keypad
++ * is mapped inconsistently.
++ */
++static void
++check_keypad(TERMTYPE * tp)
++{
++ char show[80];
++
++ if (VALID_STRING(key_a1) &&
++ VALID_STRING(key_a3) &&
++ VALID_STRING(key_b2) &&
++ VALID_STRING(key_c1) &&
++ VALID_STRING(key_c3)) {
++ char final[6];
++ int list[5];
++ int increase = 0;
++ int j, k, kk;
++ int last;
++ int test;
++
++ final[0] = keypad_final(key_a1);
++ final[1] = keypad_final(key_a3);
++ final[2] = keypad_final(key_b2);
++ final[3] = keypad_final(key_c1);
++ final[4] = keypad_final(key_c3);
++ final[5] = '\0';
++
++ /* special case: legacy coding using 1,2,3,0,. on the bottom */
++ if (!strcmp(final, "qsrpn"))
++ return;
++
++ list[0] = keypad_index(key_a1);
++ list[1] = keypad_index(key_a3);
++ list[2] = keypad_index(key_b2);
++ list[3] = keypad_index(key_c1);
++ list[4] = keypad_index(key_c3);
++
++ /* check that they're all vt100 keys */
++ for (j = 0; j < 5; ++j) {
++ if (list[j] < 0) {
++ return;
++ }
++ }
++
++ /* check if they're all in increasing order */
++ for (j = 1; j < 5; ++j) {
++ if (list[j] > list[j - 1]) {
++ ++increase;
++ }
++ }
++ if (increase != 4) {
++ show[0] = '\0';
++
++ for (j = 0, last = -1; j < 5; ++j) {
++ for (k = 0, kk = -1, test = 100; k < 5; ++k) {
++ if (list[k] > last &&
++ list[k] < test) {
++ test = list[k];
++ kk = k;
++ }
++ }
++ last = test;
++ switch (kk) {
++ case 0:
++ strcat(show, " ka1");
++ break;
++ case 1:
++ strcat(show, " ka3");
++ break;
++ case 2:
++ strcat(show, " kb2");
++ break;
++ case 3:
++ strcat(show, " kc1");
++ break;
++ case 4:
++ strcat(show, " kc3");
++ break;
++ }
++ }
++
++ _nc_warning("vt100 keypad order inconsistent: %s", show);
++ }
++
++ } else if (VALID_STRING(key_a1) ||
++ VALID_STRING(key_a3) ||
++ VALID_STRING(key_b2) ||
++ VALID_STRING(key_c1) ||
++ VALID_STRING(key_c3)) {
++ show[0] = '\0';
++ if (keypad_index(key_a1) >= 0)
++ strcat(show, " ka1");
++ if (keypad_index(key_a3) >= 0)
++ strcat(show, " ka3");
++ if (keypad_index(key_b2) >= 0)
++ strcat(show, " kb2");
++ if (keypad_index(key_c1) >= 0)
++ strcat(show, " kc1");
++ if (keypad_index(key_c3) >= 0)
++ strcat(show, " kc3");
++ if (*show != '\0')
++ _nc_warning("vt100 keypad map incomplete:%s", show);
++ }
++}
++
++/*
+ * Returns the expected number of parameters for the given capability.
+ */
+ static int
+@@ -1076,17 +1275,9 @@
+ check_params(tp, ExtStrname(tp, j, strnames), a);
+ }
+
+- /*
+- * Quick check for color. We could also check if the ANSI versus
+- * non-ANSI strings are misused.
+- */
+- if ((max_colors > 0) != (max_pairs > 0)
+- || ((max_colors > max_pairs) && (initialize_pair == 0)))
+- _nc_warning("inconsistent values for max_colors (%d) and max_pairs (%d)",
+- max_colors, max_pairs);
+-
+- PAIRED(set_foreground, set_background);
+- PAIRED(set_a_foreground, set_a_background);
++ check_acs(tp);
++ check_colors(tp);
++ check_keypad(tp);
+
+ /*
+ * These may be mismatched because the terminal description relies on
+diff -urNd -urNd ncurses-5.3/progs/tput.c ncurses-5.3.20030906.orig/progs/tput.c
+--- ncurses-5.3/progs/tput.c Sat Jul 20 14:09:47 2002
++++ ncurses-5.3.20030906.orig/progs/tput.c Tue May 13 20:08:23 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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 @@
+ #endif
+ #include <transform.h>
+
+-MODULE_ID("$Id: tput.c,v 1.31 2002/07/20 19:09:47 tom Exp $")
++MODULE_ID("$Id: tput.c,v 1.33 2003/02/22 22:10:34 tom Exp $")
+
+ #define PUTS(s) fputs(s, stdout)
+ #define PUTCHAR(c) putchar(c)
+@@ -70,14 +70,14 @@
+ vfprintf(stderr, fmt, argp);
+ fprintf(stderr, "\n");
+ va_end(argp);
+- exit(status);
++ ExitProgram(status);
+ }
+
+ static void
+ usage(void)
+ {
+ fprintf(stderr, "usage: %s [-V] [-S] [-T term] capname\n", prg_name);
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ }
+
+ static void
+@@ -297,8 +297,10 @@
+ token = STRING;
+ if (argc > 1) {
+ int k;
+- int numbers[10];
+- char *strings[10];
++ int popcount;
++ long numbers[1 + NUM_PARM];
++ char *strings[1 + NUM_PARM];
++ char *p_is_s[NUM_PARM];
+
+ /* Nasty hack time. The tparm function needs to see numeric
+ * parameters as numbers, not as pointers to their string
+@@ -312,7 +314,7 @@
+ if (tmp == 0 || *tmp != 0)
+ numbers[k] = 0;
+ }
+- for (k = argc; k <= 9; k++) {
++ for (k = argc; k <= NUM_PARM; k++) {
+ numbers[k] = 0;
+ strings[k] = 0;
+ }
+@@ -325,10 +327,18 @@
+ s = tparm(s, numbers[1], strings[2], strings[3]);
+ break;
+ default:
++ (void) _nc_tparm_analyze(s, p_is_s, &popcount);
++#define myParam(n) (p_is_s[n - 1] != 0 ? ((long) strings[n]) : numbers[n])
+ s = tparm(s,
+- numbers[1], numbers[2], numbers[3],
+- numbers[4], numbers[5], numbers[6],
+- numbers[7], numbers[8], numbers[9]);
++ myParam(1),
++ myParam(2),
++ myParam(3),
++ myParam(4),
++ myParam(5),
++ myParam(6),
++ myParam(7),
++ myParam(8),
++ myParam(9));
+ break;
+ }
+ }
+diff -urNd -urNd ncurses-5.3/progs/tset.c ncurses-5.3.20030906.orig/progs/tset.c
+--- ncurses-5.3/progs/tset.c Sat Aug 24 18:18:16 2002
++++ ncurses-5.3.20030906.orig/progs/tset.c Tue May 13 20:08:23 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -103,7 +103,7 @@
+ #include <dump_entry.h>
+ #include <transform.h>
+
+-MODULE_ID("$Id: tset.c,v 0.53 2002/08/24 23:18:16 tom Exp $")
++MODULE_ID("$Id: tset.c,v 0.55 2003/02/09 00:30:09 tom Exp $")
+
+ extern char **environ;
+
+@@ -142,7 +142,7 @@
+ SET_TTY(STDERR_FILENO, &original);
+ (void) fprintf(stderr, "\n");
+ fflush(stderr);
+- exit(EXIT_FAILURE);
++ ExitProgram(EXIT_FAILURE);
+ /* NOTREACHED */
+ }
+
+@@ -627,8 +627,10 @@
+ **************************************************************************/
+
+ /* some BSD systems have these built in, some systems are missing
+- * one or more definitions. The safest solution is to override.
++ * one or more definitions. The safest solution is to override unless the
++ * commonly-altered ones are defined.
+ */
++#if !(defined(CERASE) && defined(CINTR) && defined(CKILL) && defined(CQUIT))
+ #undef CEOF
+ #undef CERASE
+ #undef CINTR
+@@ -639,18 +641,39 @@
+ #undef CSTART
+ #undef CSTOP
+ #undef CSUSP
++#endif
+
+ /* control-character defaults */
++#ifndef CEOF
+ #define CEOF CTRL('D')
++#endif
++#ifndef CERASE
+ #define CERASE CTRL('H')
++#endif
++#ifndef CINTR
+ #define CINTR 127 /* ^? */
++#endif
++#ifndef CKILL
+ #define CKILL CTRL('U')
++#endif
++#ifndef CLNEXT
+ #define CLNEXT CTRL('v')
++#endif
++#ifndef CRPRNT
+ #define CRPRNT CTRL('r')
++#endif
++#ifndef CQUIT
+ #define CQUIT CTRL('\\')
++#endif
++#ifndef CSTART
+ #define CSTART CTRL('Q')
++#endif
++#ifndef CSTOP
+ #define CSTOP CTRL('S')
++#endif
++#ifndef CSUSP
+ #define CSUSP CTRL('Z')
++#endif
+
+ #define CHK(val, dft) ((int)val <= 0 ? dft : val)
+
+@@ -1183,8 +1206,8 @@
+ #ifdef TERMIOS
+ if (!quiet) {
+ report("Erase", VERASE, CERASE);
+- report("Kill", VKILL, CINTR);
+- report("Interrupt", VINTR, CKILL);
++ report("Kill", VKILL, CKILL);
++ report("Interrupt", VINTR, CINTR);
+ }
+ #endif
+ }
+@@ -1193,12 +1216,14 @@
+ err("The -S option is not supported under terminfo.");
+
+ if (sflag) {
++ int len;
+ /*
+ * Figure out what shell we're using. A hack, we look for an
+ * environmental variable SHELL ending in "csh".
+ */
+ if ((p = getenv("SHELL")) != 0
+- && !strcmp(p + strlen(p) - 3, "csh"))
++ && (len = strlen(p)) >= 3
++ && !strcmp(p + len - 3, "csh"))
+ p = "set noglob;\nsetenv TERM %s;\nunset noglob;\n";
+ else
+ p = "TERM=%s;\n";
+@@ -1207,5 +1232,3 @@
+
+ return EXIT_SUCCESS;
+ }
+-
+-/* tset.c ends here */
+diff -urNd -urNd ncurses-5.3/tack/Makefile.in ncurses-5.3.20030906.orig/tack/Makefile.in
+--- ncurses-5.3/tack/Makefile.in Sat Dec 8 12:48:01 2001
++++ ncurses-5.3.20030906.orig/tack/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,4 +1,4 @@
+-# $Id: Makefile.in,v 1.27 2001/12/08 18:48:01 tom Exp $
++# $Id: Makefile.in,v 1.29 2003/08/23 23:24:08 tom Exp $
+ # Makefile for tack
+ #
+ # The variable 'srcdir' refers to the source-distribution, and can be set with
+@@ -29,6 +29,11 @@
+ datadir = @datadir@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
++LIBTOOL_INSTALL = @LIB_INSTALL@
++LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+
+ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -55,15 +60,15 @@
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+ LD = @LD@
+-LINK = @LINK_PROGS@ $(LIBTOOL) $(CC)
++LINK = @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
+ LDFLAGS = @EXTRA_LDFLAGS@ \
+ @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
+
+-LDFLAGS_LIBTOOL = $(LDFLAGS)
+-LDFLAGS_NORMAL = $(LDFLAGS)
+-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
+-LDFLAGS_PROFILE = $(LDFLAGS) -pg
+-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
++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_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
+
+@@ -92,11 +97,11 @@
+ install.tack: $(PROGS) \
+ $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(mandir)
+- $(LIBTOOL) $(INSTALL_PROGRAM) tack$x $(DESTDIR)$(bindir)/tack$x
++ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) tack$x $(DESTDIR)$(bindir)/tack$x
+ $(INSTALL_DATA) $(srcdir)/tack.1 $(DESTDIR)$(mandir)/tack.1
+
+ uninstall.tack:
+- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/tack$x
++ -@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(bindir)/tack$x
+ -@rm -f $(DESTDIR)$(mandir)/tack.1
+
+ $(DESTDIR)$(bindir) \
+diff -urNd -urNd ncurses-5.3/tar-copy.sh ncurses-5.3.20030906.orig/tar-copy.sh
+--- ncurses-5.3/tar-copy.sh Wed Feb 11 06:14:03 1998
++++ ncurses-5.3.20030906.orig/tar-copy.sh Tue May 13 20:08:23 2003
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+-# $Id: tar-copy.sh,v 1.3 1998/02/11 12:14:03 tom Exp $
++# $Id: tar-copy.sh,v 1.4 2003/05/11 00:23:28 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc. #
++# Copyright (c) 1998,2003 Free 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 <dickey@clark.net> 1997,1998
++# Author: Thomas E. Dickey
+ #
+ # Copy a collection of files using 'tar', so that their dates and links are
+ # preserved
+@@ -55,16 +55,24 @@
+ WD=`pwd`
+
+ TMP=$WD/copy$$
+-trap "rm -f $TMP" 0 1 2 5 15
+
+ cd $2
+-if ( tar cf $TMP $1 )
++TEST=`ls -d $1 2>/dev/null`
++if test -z "$TEST"
+ then
+- cd $3
+- LIST=`tar tf $TMP 2>&1`
+- $DOIT rm -rf $LIST 2>/dev/null
+- $DOIT tar xvf $TMP
++ echo "... no match for \"$1\" in $2"
+ else
+- echo "Cannot create tar of $1 files"
+- exit 1
++ echo "... installing files matching \"$1\" in $2"
++ trap "rm -f $TMP" 0 1 2 5 15
++ if ( tar cf $TMP $1 )
++ then
++ cd $3
++ LIST=`tar tf $TMP 2>&1`
++ $DOIT rm -rf $LIST 2>/dev/null
++ $DOIT tar xvf $TMP
++ trap 0 1 2 5 15
++ else
++ echo "Cannot create tar of $1 files"
++ exit 1
++ fi
+ fi
+diff -urNd -urNd ncurses-5.3/test/Makefile.in ncurses-5.3.20030906.orig/test/Makefile.in
+--- ncurses-5.3/test/Makefile.in Sat Feb 2 18:54:10 2002
++++ ncurses-5.3.20030906.orig/test/Makefile.in Fri Sep 12 16:42:40 2003
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.63 2002/02/03 00:54:10 china Exp $
++# $Id: Makefile.in,v 1.73 2003/08/24 00:05:14 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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,1998
++# Author: Thomas E. Dickey 1996-2002
+ #
+ # Makefile for ncurses tests.
+
+@@ -46,12 +46,15 @@
+ includedir = @includedir@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_CLEAN = @LIB_CLEAN@
++LIBTOOL_COMPILE = @LIB_COMPILE@
++LIBTOOL_LINK = @LIB_LINK@
+
+ CC = @CC@
+ CPP = @CPP@
+
+ CFLAGS = @CFLAGS@
+-CPPFLAGS = -I../test -I$(srcdir) @CPPFLAGS@ -DHAVE_CONFIG_H
++CPPFLAGS = -I../test -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -69,15 +72,15 @@
+ MATH_LIB = @MATH_LIB@
+
+ LD = @LD@
+-LINK = @LINK_TESTS@ $(LIBTOOL) $(CC) $(CFLAGS)
++LINK = @LINK_TESTS@ $(LIBTOOL_LINK) $(CC) $(CFLAGS)
+
+ LDFLAGS = @LD_MODEL@ @TEST_ARGS@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
+
+-LDFLAGS_LIBTOOL = $(LDFLAGS)
+-LDFLAGS_NORMAL = $(LDFLAGS)
+-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
+-LDFLAGS_PROFILE = $(LDFLAGS) -pg
+-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
++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_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
+
+@@ -89,6 +92,11 @@
+ blue$x \
+ bs$x \
+ cardfile$x \
++ demo_defkey$x \
++ demo_forms$x \
++ demo_keyok$x \
++ demo_menus$x \
++ demo_panels$x \
+ ditto$x \
+ dots$x \
+ filter$x \
+@@ -97,13 +105,15 @@
+ gdc$x \
+ hanoi$x \
+ hashtest$x \
++ ins_wide$x \
++ inserts$x \
+ keynames$x \
+ knight$x \
+ lrtest$x \
+ ncurses$x \
+ newdemo$x \
+- rain$x \
+ railroad$x \
++ rain$x \
+ tclock$x \
+ testaddch$x \
+ testcurs$x \
+@@ -125,6 +135,21 @@
+ cardfile$x: $(MODEL)/cardfile.o $(LOCAL_LIBS)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/cardfile.o $(LDFLAGS_DEFAULT)
+
++demo_defkey$x: $(MODEL)/demo_defkey.o $(LOCAL_LIBS)
++ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_defkey.o $(LDFLAGS_DEFAULT)
++
++demo_forms$x: $(MODEL)/demo_forms.o $(MODEL)/edit_field.o $(LOCAL_LIBS)
++ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_forms.o $(MODEL)/edit_field.o $(LDFLAGS_DEFAULT)
++
++demo_keyok$x: $(MODEL)/demo_keyok.o $(LOCAL_LIBS)
++ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_keyok.o $(LDFLAGS_DEFAULT)
++
++demo_menus$x: $(MODEL)/demo_menus.o $(LOCAL_LIBS)
++ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_menus.o $(LDFLAGS_DEFAULT)
++
++demo_panels$x: $(MODEL)/demo_panels.o $(LOCAL_LIBS)
++ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_panels.o $(LDFLAGS_DEFAULT)
++
+ ditto$x: $(MODEL)/ditto.o $(LOCAL_LIBS)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ditto.o $(LDFLAGS_DEFAULT)
+
+@@ -149,6 +174,12 @@
+ hashtest$x: $(MODEL)/hashtest.o $(LOCAL_LIBS)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hashtest.o $(LDFLAGS_DEFAULT)
+
++inserts$x: $(MODEL)/inserts.o $(LOCAL_LIBS)
++ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/inserts.o $(LDFLAGS_DEFAULT)
++
++ins_wide$x: $(MODEL)/ins_wide.o $(LOCAL_LIBS)
++ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ins_wide.o $(LDFLAGS_DEFAULT)
++
+ keynames$x: $(MODEL)/keynames.o $(LOCAL_LIBS)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/keynames.o $(LDFLAGS_DEFAULT)
+
+@@ -213,9 +244,3 @@
+
+ lint:
+ sh -c 'for N in $(TESTS); do echo LINT:$$N; $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/$$N.c $(LINT_LIBS); done'
+-
+-# Use this to get a list of test-programs for the standalone configure script.
+-echo_tests :
+- @echo "$(TESTS)"
+-echo_suffix :
+- @echo "$x"
+diff -urNd -urNd ncurses-5.3/test/README ncurses-5.3.20030906.orig/test/README
+--- ncurses-5.3/test/README Sat Nov 25 01:11:22 1995
++++ ncurses-5.3.20030906.orig/test/README Sun Jul 20 14:02:09 2003
+@@ -1,3 +1,6 @@
++-- $Id: README,v 1.15 2003/07/05 19:17:49 tom Exp $
++-------------------------------------------------------------------------------
++
+ The programs in this directory are designed to test your newest toy :-)
+ Check the sources for any further details.
+
+@@ -20,3 +23,601 @@
+ This directory also contains:
+
+ tracemunch - Perl script to crunch trace scripts to make them easier to read
++
++-------------------------------------------------------------------------------
++-------------------------------------------------------------------------------
++
++These programs provide examples of use, but do not comprise a complete set of
++tests. Here is a list of library externals, noting those that are used:
++
++libform:
++-------
++TYPE_ALNUM test: demo_forms
++TYPE_ALPHA test: demo_forms ncurses
++TYPE_ENUM test: demo_forms
++TYPE_INTEGER test: demo_forms
++TYPE_IPV4 -
++TYPE_NUMERIC test: demo_forms
++TYPE_REGEXP test: demo_forms
++current_field test: demo_forms edit_field ncurses
++data_ahead -
++data_behind -
++dup_field -
++dynamic_field_info -
++field_arg -
++field_back -
++field_buffer test: cardfile demo_forms edit_field ncurses
++field_count -
++field_fore -
++field_index test: demo_forms
++field_info test: ncurses
++field_init -
++field_just -
++field_opts test: demo_forms ncurses
++field_opts_off test: cardfile
++field_opts_on -
++field_pad -
++field_status -
++field_term -
++field_type test: demo_forms
++field_userptr test: ncurses
++form_driver test: cardfile demo_forms edit_field ncurses
++form_fields test: cardfile
++form_init -
++form_opts -
++form_opts_off -
++form_opts_on -
++form_page -
++form_request_by_name -
++form_request_name test: edit_field
++form_sub test: cardfile demo_forms ncurses
++form_term -
++form_userptr -
++form_win test: cardfile demo_forms edit_field ncurses
++free_field test: cardfile demo_forms ncurses
++free_fieldtype -
++free_form test: cardfile demo_forms ncurses
++link_field -
++link_fieldtype -
++move_field -
++new_field test: cardfile demo_forms ncurses
++new_fieldtype test: ncurses
++new_form test: cardfile demo_forms ncurses
++new_page -
++pos_form_cursor -
++post_form test: cardfile demo_forms ncurses
++scale_form test: demo_forms ncurses
++set_current_field -
++set_field_back test: cardfile demo_forms edit_field ncurses
++set_field_buffer test: cardfile demo_forms edit_field ncurses
++set_field_fore -
++set_field_init -
++set_field_just test: cardfile
++set_field_opts test: demo_forms ncurses
++set_field_pad -
++set_field_status -
++set_field_term -
++set_field_type test: demo_forms ncurses
++set_field_userptr test: demo_forms ncurses
++set_fieldtype_arg -
++set_fieldtype_choice -
++set_form_fields -
++set_form_init -
++set_form_opts -
++set_form_page -
++set_form_sub test: cardfile demo_forms ncurses
++set_form_term -
++set_form_userptr -
++set_form_win test: cardfile demo_forms ncurses
++set_max_field -
++set_new_page test: demo_forms
++unpost_form test: cardfile demo_forms ncurses
++
++libmenu:
++-------
++current_item test: ncurses
++free_item test: ncurses
++free_menu test: ncurses
++item_count -
++item_description -
++item_index test: ncurses
++item_init -
++item_name test: ncurses
++item_opts -
++item_opts_off -
++item_opts_on -
++item_term -
++item_userptr -
++item_value test: ncurses
++item_visible -
++menu_back -
++menu_driver test: ncurses
++menu_fore -
++menu_format -
++menu_grey -
++menu_init -
++menu_items test: ncurses
++menu_mark -
++menu_opts -
++menu_opts_off test: ncurses
++menu_opts_on -
++menu_pad -
++menu_pattern -
++menu_request_by_name -
++menu_request_name -
++menu_spacing -
++menu_sub -
++menu_term -
++menu_userptr -
++menu_win test: ncurses
++new_item test: ncurses
++new_menu test: ncurses
++pos_menu_cursor lib: menu
++post_menu test: ncurses
++scale_menu test: ncurses
++set_current_item -
++set_item_init -
++set_item_opts -
++set_item_term -
++set_item_userptr -
++set_item_value test: ncurses
++set_menu_back -
++set_menu_fore -
++set_menu_format test: ncurses
++set_menu_grey -
++set_menu_init -
++set_menu_items -
++set_menu_mark -
++set_menu_opts -
++set_menu_pad -
++set_menu_pattern -
++set_menu_spacing -
++set_menu_sub test: ncurses
++set_menu_term -
++set_menu_userptr -
++set_menu_win test: ncurses
++set_top_row -
++top_row -
++unpost_menu test: ncurses
++
++libncurses:
++----------
++BC -
++COLORS test: ncurses xmas
++COLOR_PAIR test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
++COLOR_PAIRS test: ncurses newdemo
++COLS test: cardfile demo_defkey demo_forms demo_keyok edit_field firework hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm
++ESCDELAY lib: ncurses
++LINES test: cardfile demo_defkey demo_keyok edit_field firework hanoi hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm xmas
++PAIR_NUMBER lib: ncurses
++PC lib: ncurses
++SP lib: ncurses
++TABSIZE lib: menu
++UP -
++acs_map test: gdc ins_wide inserts knight ncurses newdemo testcurs
++add_wch -
++add_wchnstr test: ncurses
++add_wchstr test: view
++addch test: blue bs ditto hashtest ncurses testaddch view worm
++addchnstr -
++addchstr -
++addnstr -
++addnwstr -
++addstr test: blue bs cardfile gdc hanoi lrtest ncurses
++addwstr -
++assume_default_colors test: ncurses
++attr_get -
++attr_off test: ncurses
++attr_on test: ncurses
++attr_set -
++attroff test: filter gdc ncurses tclock
++attron test: bs filter gdc ncurses
++attrset test: bs firework gdc hanoi ncurses rain tclock testaddch testcurs
++baudrate lib: ncurses
++beep test: blue bs cardfile demo_forms edit_field hanoi ins_wide inserts knight ncurses tclock testcurs view xmas
++bkgd test: demo_forms ncurses tclock view
++bkgdset test: ncurses testaddch
++bkgrnd -
++bkgrndset -
++boolcodes progs: dump_entry
++boolfnames progs: dump_entry
++boolnames progs: dump_entry infocmp
++border -
++border_set -
++box test: cardfile demo_forms edit_field ins_wide inserts lrtest ncurses newdemo testcurs
++box_set test: ncurses
++can_change_color test: ncurses
++cbreak test: blue bs cardfile demo_defkey demo_forms demo_keyok ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo tclock testcurs view worm xmas
++chgat -
++clear test: blue bs gdc ncurses testcurs xmas
++clearok test: bs knight
++clrtobot test: ncurses
++clrtoeol test: blue bs hanoi hashtest ncurses view
++color_content test: ncurses
++color_set -
++copywin test: testcurs
++cur_term test: dots lrtest progs: clear tic tput tset
++curs_set test: firework gdc hanoi lrtest newdemo rain tclock testcurs worm xmas
++curscr test: edit_field knight lrtest ncurses tclock view
++curses_version test: ncurses progs: infocmp tic toe tput tset
++def_prog_mode test: bs ncurses
++def_shell_mode lib: ncurses
++define_key test: demo_defkey
++del_curterm lib: ncurses
++delay_output -
++delch -
++deleteln -
++delscreen -
++delwin test: cardfile demo_forms edit_field ncurses newdemo testcurs
++derwin test: cardfile demo_forms ncurses
++doupdate test: cardfile edit_field ins_wide inserts knight ncurses
++dupwin test: edit_field
++echo test: bs hanoi ncurses testcurs testscanw
++echo_wchar test: ncurses
++echochar test: ncurses
++endwin test: blue bs cardfile demo_defkey demo_forms demo_keyok ditto filter firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
++erase test: cardfile filter firework firstlast hanoi lrtest ncurses tclock testcurs
++erasechar lib: ncurses
++erasewchar -
++filter test: filter
++flash test: cardfile lrtest ncurses tclock testcurs
++flushinp test: ncurses newdemo testcurs
++get_wch -
++get_wstr -
++getbkgd test: ncurses
++getbkgrnd -
++getcchar test: view
++getch test: blue bs ditto firework firstlast hanoi hashtest lrtest rain tclock testaddch testcurs view worm xmas
++getmouse test: bs knight ncurses
++getn_wstr -
++getnstr test: filter ncurses
++getstr -
++getwin test: ncurses
++halfdelay test: view
++has_colors test: bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testcurs view worm xmas
++has_ic test: lrtest
++has_il lib: ncurses
++has_key lib: ncurses
++hline test: gdc ncurses
++hline_set -
++idcok -
++idlok test: ncurses testscanw view
++immedok -
++in_wch -
++in_wchnstr -
++in_wchstr -
++inch -
++inchnstr -
++inchstr -
++init_color test: ncurses
++init_pair test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
++initscr test: blue bs cardfile demo_defkey demo_forms demo_keyok firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
++innstr -
++innwstr -
++ins_nwstr -
++ins_wch -
++ins_wstr -
++insch -
++insdelln -
++insertln -
++insnstr -
++insstr -
++instr -
++intrflush test: demo_forms
++inwstr -
++is_linetouched lib: form
++is_term_resized -
++is_wintouched lib: ncurses
++isendwin -
++key_defined test: demo_defkey
++key_name test: ncurses
++keybound test: demo_defkey
++keyname test: demo_defkey demo_keyok edit_field keynames ncurses testcurs view progs: tic
++keyok test: demo_keyok
++keypad test: bs cardfile demo_defkey demo_forms demo_keyok edit_field filter firework hashtest ins_wide inserts knight lrtest ncurses tclock testcurs testscanw view
++killchar lib: ncurses
++killwchar -
++leaveok test: hanoi
++longname test: testcurs progs: tput
++mcprint -
++meta test: ncurses
++mouse_trafo -
++mouseinterval -
++mousemask test: bs knight ncurses
++move test: blue bs cardfile gdc hanoi hashtest knight lrtest ncurses testscanw view worm xmas
++mvadd_wch test: ncurses
++mvadd_wchnstr -
++mvadd_wchstr -
++mvaddch test: bs gdc hanoi lrtest ncurses rain tclock xmas
++mvaddchnstr test: gdc
++mvaddchstr -
++mvaddnstr -
++mvaddnwstr -
++mvaddstr test: bs demo_forms gdc hanoi knight ncurses rain tclock testcurs xmas
++mvaddwstr -
++mvchgat -
++mvcur lib: ncurses
++mvdelch -
++mvderwin lib: menu
++mvget_wch -
++mvget_wstr -
++mvgetch -
++mvgetn_wstr -
++mvgetnstr -
++mvgetstr -
++mvhline test: ncurses
++mvhline_set test: ncurses
++mvin_wch -
++mvin_wchnstr -
++mvin_wchstr -
++mvinch -
++mvinchnstr test: gdc
++mvinchstr -
++mvinnstr -
++mvinnwstr -
++mvins_nwstr -
++mvins_wch -
++mvins_wstr -
++mvinsch -
++mvinsnstr -
++mvinsstr -
++mvinstr -
++mvinwstr -
++mvprintw test: bs firework hanoi ncurses tclock view
++mvscanw -
++mvvline test: ncurses
++mvvline_set test: ncurses
++mvwadd_wch -
++mvwadd_wchnstr -
++mvwadd_wchstr -
++mvwaddch test: newdemo testcurs xmas
++mvwaddchnstr -
++mvwaddchstr -
++mvwaddnstr test: newdemo testcurs
++mvwaddnwstr -
++mvwaddstr test: firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
++mvwaddwstr -
++mvwchgat -
++mvwdelch test: ncurses
++mvwget_wch -
++mvwget_wstr -
++mvwgetch -
++mvwgetn_wstr -
++mvwgetnstr -
++mvwgetstr -
++mvwhline lib: ncurses
++mvwhline_set -
++mvwin test: cardfile testcurs xmas
++mvwin_wch -
++mvwin_wchnstr -
++mvwin_wchstr -
++mvwinch test: newdemo testcurs
++mvwinchnstr -
++mvwinchstr -
++mvwinnstr test: testcurs
++mvwinnwstr -
++mvwins_nwstr -
++mvwins_wch test: ins_wide
++mvwins_wstr test: ins_wide
++mvwinsch test: ins_wide inserts
++mvwinsnstr -
++mvwinsstr test: inserts testcurs
++mvwinstr -
++mvwinwstr -
++mvwprintw test: ncurses testcurs
++mvwscanw test: testcurs
++mvwvline test: ins_wide inserts
++mvwvline_set -
++napms test: firework gdc hanoi lrtest ncurses newdemo railroad rain tclock testcurs view worm xmas progs: tset
++newpad test: edit_field ncurses testcurs
++newscr lib: ncurses
++newterm test: ditto filter gdc
++newwin test: cardfile demo_defkey demo_forms demo_keyok edit_field firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
++nl test: demo_forms ncurses rain testcurs
++nocbreak test: testcurs
++nodelay test: firework gdc lrtest ncurses newdemo rain tclock view xmas
++noecho test: bs cardfile demo_defkey demo_forms demo_keyok ditto firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs view worm xmas
++nonl test: bs demo_forms hashtest ncurses view worm xmas
++noqiflush -
++noraw test: demo_forms ncurses testcurs
++notimeout -
++numcodes progs: dump_entry
++numfnames progs: dump_entry
++numnames progs: dump_entry infocmp
++ospeed progs: tset
++overlay test: testcurs xmas
++overwrite test: ncurses
++pair_content lib: ncurses
++pechochar -
++pnoutrefresh test: edit_field ncurses
++prefresh test: testcurs
++printw test: blue bs demo_defkey demo_keyok filter ncurses testcurs testscanw view
++putp progs: tput
++putwin test: ncurses
++qiflush -
++raw test: demo_forms ncurses testcurs
++redrawwin -
++refresh test: blue bs demo_defkey demo_forms demo_keyok ditto filter firstlast gdc hanoi hashtest lrtest ncurses tclock testcurs view worm xmas
++reset_prog_mode test: filter ncurses
++reset_shell_mode test: bs filter
++resetty -
++resize_term test: view
++resizeterm lib: ncurses
++restartterm -
++ripoffline test: ncurses
++savetty -
++scanw test: testcurs testscanw
++scr_dump -
++scr_init -
++scr_restore -
++scr_set -
++scrl -
++scroll test: testcurs
++scrollok test: demo_defkey demo_keyok ditto hashtest knight ncurses testcurs testscanw view
++set_curterm lib: ncurses
++set_term test: ditto
++setcchar test: ins_wide ncurses view
++setscrreg test: view
++setupterm test: dots progs: clear tput tset
++slk_attr -
++slk_attr_off -
++slk_attr_on -
++slk_attr_set -
++slk_attroff lib: ncurses
++slk_attron lib: ncurses
++slk_attrset -
++slk_clear test: ncurses
++slk_color test: ncurses
++slk_init test: ncurses
++slk_label test: ncurses
++slk_noutrefresh test: ncurses
++slk_refresh test: ncurses
++slk_restore test: ncurses
++slk_set test: ncurses
++slk_touch test: ncurses
++slk_wset test: ncurses
++standend test: blue gdc ncurses worm
++standout test: blue ncurses
++start_color test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
++stdscr test: bs demo_forms ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs testscanw view xmas
++strcodes progs: dump_entry
++strfnames progs: dump_entry
++strnames progs: dump_entry infocmp tic
++subpad test: testcurs
++subwin test: ncurses newdemo testcurs
++syncok -
++term_attrs -
++termattrs test: ncurses testcurs
++termname test: testcurs
++tgetent test: railroad
++tgetflag -
++tgetnum test: railroad
++tgetstr test: railroad
++tgoto test: railroad
++tigetflag progs: tput
++tigetnum test: ncurses progs: tput
++tigetstr test: blue demo_defkey testcurs progs: tput
++timeout test: rain
++touchline lib: ncurses
++touchwin test: edit_field filter firstlast ncurses xmas
++tparm test: dots progs: tic tput
++tputs test: dots railroad progs: clear tset
++trace test: hanoi hashtest lrtest ncurses testcurs view worm
++ttytype lib: ncurses
++typeahead test: testcurs
++unctrl test: ncurses testcurs
++unget_wch -
++ungetch test: bs knight
++ungetmouse -
++untouchwin -
++use_default_colors test: filter firework gdc hanoi knight ncurses rain tclock worm xmas
++use_env progs: tput
++use_extended_names progs: infocmp tic
++vid_attr -
++vid_puts -
++vidattr lib: ncurses
++vidputs lib: ncurses
++vline test: gdc ncurses
++vline_set -
++vw_printw -
++vw_scanw -
++vwprintw lib: ncurses
++vwscanw lib: ncurses
++wadd_wch lib: ncurses
++wadd_wchnstr lib: ncurses
++wadd_wchstr -
++waddch test: firstlast knight ncurses
++waddchnstr lib: ncurses
++waddchstr -
++waddnstr lib: form
++waddnwstr test: ncurses
++waddstr test: demo_forms edit_field firstlast ins_wide knight ncurses testcurs
++waddwstr test: ins_wide
++wattr_get -
++wattr_off lib: menu
++wattr_on lib: menu
++wattr_set -
++wattroff test: demo_forms ncurses testcurs xmas
++wattron test: testcurs xmas
++wattrset test: demo_forms ncurses newdemo testcurs xmas
++wbkgd test: demo_forms ncurses newdemo testcurs
++wbkgdset test: ins_wide inserts ncurses
++wbkgrnd lib: ncurses
++wbkgrndset lib: ncurses
++wborder lib: ncurses
++wborder_set lib: ncurses
++wchgat test: view
++wclear test: ncurses testcurs
++wclrtobot test: firstlast ncurses testcurs
++wclrtoeol test: demo_defkey demo_keyok firstlast ins_wide inserts knight ncurses testcurs
++wcolor_set lib: ncurses
++wcursyncup lib: form
++wdelch test: ncurses testcurs
++wdeleteln test: testcurs
++wecho_wchar lib: ncurses
++wechochar lib: ncurses
++wenclose lib: menu
++werase test: cardfile demo_forms edit_field firstlast knight ncurses newdemo testcurs xmas
++wget_wch test: ins_wide ncurses
++wget_wstr -
++wgetch test: cardfile demo_defkey demo_keyok edit_field gdc inserts knight ncurses newdemo testcurs
++wgetn_wstr test: ncurses
++wgetnstr test: ncurses
++wgetstr -
++whline test: testcurs
++whline_set lib: ncurses
++win_wch lib: ncurses
++win_wchnstr lib: ncurses
++win_wchstr -
++winch test: knight testcurs
++winchnstr lib: ncurses
++winchstr -
++winnstr test: demo_defkey
++winnwstr lib: ncurses
++wins_nwstr lib: ncurses
++wins_wch lib: ncurses
++wins_wstr -
++winsch test: testcurs
++winsdelln lib: form
++winsertln test: testcurs
++winsnstr lib: form
++winsstr -
++winstr -
++winwstr lib: ncurses
++wmouse_trafo lib: menu
++wmove test: demo_defkey demo_keyok firstlast ins_wide inserts knight ncurses newdemo testcurs
++wnoutrefresh test: edit_field ins_wide inserts knight ncurses
++wprintw test: demo_defkey demo_forms demo_keyok edit_field ins_wide inserts knight ncurses testcurs
++wredrawln lib: ncurses
++wrefresh test: demo_forms demo_keyok edit_field firstlast knight lrtest ncurses newdemo tclock testcurs view xmas
++wresize test: cardfile ncurses
++wscanw test: testcurs
++wscrl test: ncurses testcurs view
++wsetscrreg test: ncurses testcurs
++wstandend test: xmas
++wstandout test: xmas
++wsyncdown lib: ncurses
++wsyncup lib: form
++wtimeout test: ncurses
++wtouchln lib: form
++wunctrl -
++wvline test: testcurs
++wvline_set lib: ncurses
++
++libpanel:
++--------
++bottom_panel test: ncurses
++del_panel test: ncurses
++hide_panel test: ncurses
++move_panel test: ncurses
++new_panel test: cardfile ncurses
++panel_above -
++panel_below -
++panel_hidden -
++panel_userptr test: ncurses
++panel_window test: cardfile ncurses
++replace_panel -
++set_panel_userptr test: ncurses
++show_panel test: ncurses
++top_panel test: cardfile ncurses
++update_panels test: cardfile ncurses
+diff -urNd -urNd ncurses-5.3/test/aclocal.m4 ncurses-5.3.20030906.orig/test/aclocal.m4
+--- ncurses-5.3/test/aclocal.m4 Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/aclocal.m4 Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,812 @@
++dnl $Id: aclocal.m4,v 1.4 2003/05/17 22:22:52 tom Exp $
++dnl ---------------------------------------------------------------------------
++dnl ---------------------------------------------------------------------------
++dnl CF_ADD_INCDIR version: 4 updated: 2002/12/21 14:25:52
++dnl -------------
++dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
++dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
++dnl but old versions (and some misinstalled ones) need that. To make things
++dnl worse, gcc 3.x gives error messages if -I/usr/local/include is added to
++dnl the include-path).
++AC_DEFUN([CF_ADD_INCDIR],
++[
++for cf_add_incdir in $1
++do
++ while true
++ do
++ case $cf_add_incdir in
++ /usr/include) # (vi
++ ;;
++ /usr/local/include) # (vi
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ AC_TRY_COMPILE([#include <stdio.h>],
++ [printf("Hello")],
++ [],
++ [CPPFLAGS="$cf_save_CPPFLAGS"])
++ fi
++ ;;
++ *) # (vi
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ ;;
++ esac
++ 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"
++ done
++done
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_CACHE version: 7 updated: 2001/12/19 00:50:10
++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.
++dnl
++dnl If we've packaged config.guess and config.sub, run that (since it does a
++dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
++dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
++dnl which is useful in cross-compiles.
++AC_DEFUN([CF_CHECK_CACHE],
++[
++if test -f $srcdir/config.guess ; then
++ ifelse([$1],,[AC_CANONICAL_HOST],[$1])
++ system_name="$host_os"
++else
++ system_name="`(uname -s -r) 2>/dev/null`"
++ if test -z "$system_name" ; then
++ system_name="`(hostname) 2>/dev/null`"
++ fi
++fi
++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$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"
++test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
++
++if test ".$system_name" != ".$cf_cv_system_name" ; then
++ AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
++ AC_ERROR("Please remove config.cache and try again.")
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_ACS_MAP version: 3 updated: 2003/05/17 22:19:02
++dnl -----------------
++dnl Check for likely values of acs_map[]:
++AC_DEFUN([CF_CURSES_ACS_MAP],
++[
++AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
++cf_cv_curses_acs_map=unknown
++for name in acs_map _acs_map __acs_map _nc_acs_map
++do
++AC_TRY_LINK([
++#include <${cf_cv_ncurses_header-curses.h}>
++],[
++$name['k'] = ACS_PLUS
++],[cf_cv_curses_acs_map=$name; break])
++done
++])
++
++test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_CHECK_TYPE version: 2 updated: 2003/03/01 23:40:33
++dnl --------------------
++dnl Check if curses.h defines the given type
++AC_DEFUN([CF_CURSES_CHECK_TYPE],
++[
++AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header-curses.h})
++AC_TRY_COMPILE([
++#ifndef _XOPEN_SOURCE_EXTENDED
++#define _XOPEN_SOURCE_EXTENDED
++#endif
++#include <${cf_cv_ncurses_header-curses.h}>],[
++$1 foo
++],cf_result=yes,cf_result=no)
++AC_MSG_RESULT($cf_result)
++if test $cf_result = yes ; then
++ CF_UPPER(cf_result,have_type_$1)
++ AC_DEFINE_UNQUOTED($cf_result)
++else
++ AC_DEFINE_UNQUOTED($1,$2)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_CPPFLAGS version: 6 updated: 2002/10/27 18:21:42
++dnl ------------------
++dnl Look for the curses headers.
++AC_DEFUN([CF_CURSES_CPPFLAGS],[
++
++AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
++cf_cv_curses_incdir=no
++case $host_os in #(vi
++hpux10.*|hpux11.*) #(vi
++ test -d /usr/include/curses_colr && \
++ cf_cv_curses_incdir="-I/usr/include/curses_colr"
++ ;;
++sunos3*|sunos4*)
++ test -d /usr/5lib && \
++ test -d /usr/5include && \
++ cf_cv_curses_incdir="-I/usr/5include"
++ ;;
++esac
++])
++test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
++
++AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
++cf_cv_ncurses_header=none
++for cf_header in \
++ curses.h \
++ ncurses.h \
++ ncurses/curses.h \
++ ncurses/ncurses.h
++do
++AC_TRY_COMPILE([#include <${cf_header}>],
++ [initscr(); tgoto("?", 0,0)],
++ [cf_cv_ncurses_header=$cf_header; break],[])
++done
++])
++
++if test "$cf_cv_ncurses_header" = none ; then
++ AC_MSG_ERROR(No curses header-files found)
++fi
++
++# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
++AC_CHECK_HEADERS($cf_cv_ncurses_header)
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_LIBS version: 22 updated: 2002/10/27 18:21:42
++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.
++AC_DEFUN([CF_CURSES_LIBS],[
++
++AC_MSG_CHECKING(if we have identified curses libraries)
++AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
++ [initscr(); tgoto("?", 0,0)],
++ cf_result=yes,
++ cf_result=no)
++AC_MSG_RESULT($cf_result)
++
++if test "$cf_result" = no ; then
++case $host_os in #(vi
++freebsd*) #(vi
++ AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"])
++ ;;
++hpux10.*|hpux11.*) #(vi
++ AC_CHECK_LIB(cur_colr,initscr,[
++ LIBS="-lcur_colr $LIBS"
++ ac_cv_func_initscr=yes
++ ],[
++ AC_CHECK_LIB(Hcurses,initscr,[
++ # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
++ LIBS="-lHcurses $LIBS"
++ CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
++ ac_cv_func_initscr=yes
++ ])])
++ ;;
++linux*) # Suse Linux does not follow /usr/lib convention
++ LIBS="$LIBS -L/lib"
++ ;;
++sunos3*|sunos4*)
++ test -d /usr/5lib && \
++ LIBS="$LIBS -L/usr/5lib -lcurses -ltermcap"
++ ac_cv_func_initscr=yes
++ ;;
++esac
++
++if test ".$ac_cv_func_initscr" != .yes ; then
++ cf_save_LIBS="$LIBS"
++ cf_term_lib=""
++ cf_curs_lib=""
++
++ 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 initscr
++ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
++ for cf_curs_lib in $cf_check_list xcurses jcurses unknown
++ do
++ AC_CHECK_LIB($cf_curs_lib,initscr,[break])
++ done
++ test $cf_curs_lib = unknown && AC_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_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_WACS_MAP version: 3 updated: 2003/05/17 22:19:02
++dnl ------------------
++dnl Check for likely values of wacs_map[]:
++AC_DEFUN([CF_CURSES_WACS_MAP],
++[
++AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
++ cf_cv_curses_wacs_map=unknown
++ for name in wacs_map _wacs_map __wacs_map _nc_wacs
++ do
++ AC_TRY_LINK([
++#ifndef _XOPEN_SOURCE_EXTENDED
++#define _XOPEN_SOURCE_EXTENDED
++#endif
++#include <${cf_cv_ncurses_header-curses.h}>],
++ [$name['k'] = *WACS_PLUS],
++ [cf_cv_curses_wacs_map=$name
++ break])
++ done])
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
++dnl ----------
++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_FIND_LIBRARY version: 7 updated: 2000/04/13 21:38:04
++dnl ---------------
++dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
++dnl prefer a standard location, and use -L options only if we do not find the
++dnl library in the standard library location(s).
++dnl $1 = library name
++dnl $2 = library class, usually the same as library name
++dnl $3 = includes
++dnl $4 = code fragment to compile/link
++dnl $5 = corresponding function-name
++dnl $6 = flag, nonnull if failure causes an error-exit
++dnl
++dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
++dnl to use a -L option.
++AC_DEFUN([CF_FIND_LIBRARY],
++[
++ eval 'cf_cv_have_lib_'$1'=no'
++ cf_libdir=""
++ AC_CHECK_FUNC($5,
++ eval 'cf_cv_have_lib_'$1'=yes',[
++ cf_save_LIBS="$LIBS"
++ AC_MSG_CHECKING(for $5 in -l$1)
++ LIBS="-l$1 $LIBS"
++ AC_TRY_LINK([$3],[$4],
++ [AC_MSG_RESULT(yes)
++ eval 'cf_cv_have_lib_'$1'=yes'
++ ],
++ [AC_MSG_RESULT(no)
++ CF_LIBRARY_PATH(cf_search,$2)
++ for cf_libdir in $cf_search
++ do
++ AC_MSG_CHECKING(for -l$1 in $cf_libdir)
++ LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
++ AC_TRY_LINK([$3],[$4],
++ [AC_MSG_RESULT(yes)
++ eval 'cf_cv_have_lib_'$1'=yes'
++ break],
++ [AC_MSG_RESULT(no)
++ LIBS="$cf_save_LIBS"])
++ done
++ ])
++ ])
++eval 'cf_found_library=[$]cf_cv_have_lib_'$1
++ifelse($6,,[
++if test $cf_found_library = no ; then
++ AC_ERROR(Cannot link $1 library)
++fi
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_CURSES_VERSION version: 3 updated: 2003/05/17 22:19:02
++dnl ----------------------
++dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
++dnl It's a character string "SVR4", not documented.
++AC_DEFUN([CF_FUNC_CURSES_VERSION],
++[
++AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
++AC_TRY_RUN([
++#include <${cf_cv_ncurses_header-curses.h}>
++int main()
++{
++ char temp[1024];
++ sprintf(temp, "%s\n", curses_version());
++ exit(0);
++}]
++,[cf_cv_func_curses_version=yes]
++,[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)
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
++dnl --------------
++dnl Construct a search-list for a nonstandard header-file
++AC_DEFUN([CF_HEADER_PATH],
++[CF_SUBDIR_PATH($1,$2,include)
++test "$includedir" != NONE && \
++test "$includedir" != "/usr/include" && \
++test -d "$includedir" && {
++ test -d $includedir && $1="[$]$1 $includedir"
++ test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
++}
++
++test "$oldincludedir" != NONE && \
++test "$oldincludedir" != "/usr/include" && \
++test -d "$oldincludedir" && {
++ test -d $oldincludedir && $1="[$]$1 $oldincludedir"
++ test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
++}
++
++])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.
++AC_DEFUN([CF_INHERIT_SCRIPT],
++[
++test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
++dnl ---------------
++dnl Construct a search-list for a nonstandard library-file
++AC_DEFUN([CF_LIBRARY_PATH],
++[CF_SUBDIR_PATH($1,$2,lib)])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_NCURSES_CC_CHECK version: 3 updated: 2003/01/12 18:59:28
++dnl -------------------
++dnl Check if we can compile with ncurses' header file
++dnl $1 is the cache variable to set
++dnl $2 is the header-file to include
++dnl $3 is the root name (ncurses or ncursesw)
++AC_DEFUN([CF_NCURSES_CC_CHECK],[
++ AC_TRY_COMPILE([
++]ifelse($3,ncursesw,[
++#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 <$2>],[
++#ifdef NCURSES_VERSION
++]ifelse($3,ncursesw,[
++#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
++ ]
++ ,[$1=$cf_header]
++ ,[$1=no])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_NCURSES_CPPFLAGS version: 16 updated: 2002/12/29 18:30:46
++dnl -------------------
++dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
++dnl the CPPFLAGS variable so we can include its header.
++dnl
++dnl The header files may be installed as either curses.h, or ncurses.h (would
++dnl be obsolete, except that some packagers prefer this name to distinguish it
++dnl from a "native" curses implementation). If not installed for overwrite,
++dnl the curses.h file would be in an ncurses subdirectory (e.g.,
++dnl /usr/include/ncurses), but someone may have installed overwriting the
++dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
++dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
++dnl the header.
++dnl
++dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
++dnl is already in the include-path, don't even bother with this, since we cannot
++dnl easily determine which file it is. In this case, it has to be <curses.h>.
++dnl
++dnl The optional parameter gives the root name of the library, in case it is
++dnl not installed as the default curses library. That is how the
++dnl wide-character version of ncurses is installed.
++AC_DEFUN([CF_NCURSES_CPPFLAGS],
++[AC_REQUIRE([CF_WITH_CURSES_DIR])
++
++cf_ncuhdr_root=ifelse($1,,ncurses,$1)
++
++test -n "$cf_cv_curses_dir" && \
++test "$cf_cv_curses_dir" != "no" && \
++CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
++
++AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
++ 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
++ CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
++ test "$cf_cv_ncurses_h" != no && break
++ done
++])
++
++if test "$cf_cv_ncurses_h" != no ; then
++ cf_cv_ncurses_header=$cf_cv_ncurses_h
++else
++AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
++ test -n "$verbose" && echo
++ CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
++ test -n "$verbose" && echo search path $cf_search
++ cf_save2_CPPFLAGS="$CPPFLAGS"
++ for cf_incdir in $cf_search
++ do
++ CF_ADD_INCDIR($cf_incdir)
++ for cf_header in \
++ ncurses.h \
++ curses.h
++ do
++ CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
++ 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>&AC_FD_MSG
++ break
++ fi
++ test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
++ done
++ CPPFLAGS="$cf_save2_CPPFLAGS"
++ test "$cf_cv_ncurses_h2" != no && break
++ done
++ test "$cf_cv_ncurses_h2" = no && AC_ERROR(not found)
++ ])
++
++ CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
++ 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
++ CF_ADD_INCDIR($cf_1st_incdir)
++
++fi
++
++AC_DEFINE(NCURSES)
++
++case $cf_cv_ncurses_header in # (vi
++*ncurses.h)
++ AC_DEFINE(HAVE_NCURSES_H)
++ ;;
++esac
++
++case $cf_cv_ncurses_header in # (vi
++ncurses/curses.h|ncurses/ncurses.h)
++ AC_DEFINE(HAVE_NCURSES_NCURSES_H)
++ ;;
++ncursesw/curses.h|ncursesw/ncurses.h)
++ AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
++ ;;
++esac
++
++CF_NCURSES_VERSION
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_NCURSES_LIBS version: 11 updated: 2002/12/22 14:22:25
++dnl ---------------
++dnl Look for the ncurses library. This is a little complicated on Linux,
++dnl because it may be linked with the gpm (general purpose mouse) library.
++dnl Some distributions have gpm linked with (bsd) curses, which makes it
++dnl unusable with ncurses. However, we don't want to link with gpm unless
++dnl ncurses has a dependency, since gpm is normally set up as a shared library,
++dnl and the linker will record a dependency.
++dnl
++dnl The optional parameter gives the root name of the library, in case it is
++dnl not installed as the default curses library. That is how the
++dnl wide-character version of ncurses is installed.
++AC_DEFUN([CF_NCURSES_LIBS],
++[AC_REQUIRE([CF_NCURSES_CPPFLAGS])
++
++cf_nculib_root=ifelse($1,,ncurses,$1)
++ # 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"
++AC_CHECK_LIB(gpm,Gpm_Open,
++ [AC_CHECK_LIB(gpm,initscr,
++ [LIBS="$cf_ncurses_SAVE"],
++ [cf_ncurses_LIBS="-lgpm"])])
++
++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).
++ AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
++ ;;
++esac
++
++LIBS="$cf_ncurses_LIBS $LIBS"
++
++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
++then
++ LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
++else
++ CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
++ [#include <${cf_cv_ncurses_header-curses.h}>],
++ [initscr()],
++ initscr)
++fi
++
++if test -n "$cf_ncurses_LIBS" ; then
++ AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
++ 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
++ AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
++ [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
++ [AC_MSG_RESULT(yes)],
++ [AC_MSG_RESULT(no)
++ LIBS="$cf_ncurses_SAVE"])
++fi
++
++CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
++AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_NCURSES_VERSION version: 10 updated: 2002/10/27 18:21:42
++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
++dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
++AC_DEFUN([CF_NCURSES_VERSION],
++[
++AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
++ cf_cv_ncurses_version=no
++ cf_tempfile=out$$
++ rm -f $cf_tempfile
++ AC_TRY_RUN([
++#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
++ exit(0);
++}],[
++ cf_cv_ncurses_version=`cat $cf_tempfile`],,[
++
++ # 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>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
++ AC_TRY_EVAL(cf_try)
++ 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
++])
++ rm -f $cf_tempfile
++])
++test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PATH_SYNTAX version: 9 updated: 2002/09/17 23:03:38
++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
++dnl result begins with 'NONE'. This is necessary to work around autoconf's
++dnl delayed evaluation of those symbols.
++AC_DEFUN([CF_PATH_SYNTAX],[
++case ".[$]$1" in #(vi
++.\[$]\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
++ ;;
++.\[$]{*prefix}*) #(vi
++ eval $1="[$]$1"
++ case ".[$]$1" in #(vi
++ .NONE/*)
++ $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++ esac
++ ;; #(vi
++.NONE/*)
++ $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++*)
++ ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SUBDIR_PATH version: 3 updated: 2002/12/29 18:30:46
++dnl --------------
++dnl Construct a search-list for a nonstandard header/lib-file
++dnl $1 = the variable to return as result
++dnl $2 = the package name
++dnl $3 = the subdirectory, e.g., bin, include or lib
++AC_DEFUN([CF_SUBDIR_PATH],
++[$1=""
++
++test -d [$]HOME && {
++ test -n "$verbose" && echo " ... testing $3-directories under [$]HOME"
++ test -d [$]HOME/$3 && $1="[$]$1 [$]HOME/$3"
++ test -d [$]HOME/$3/$2 && $1="[$]$1 [$]HOME/$3/$2"
++ test -d [$]HOME/$3/$2/$3 && $1="[$]$1 [$]HOME/$3/$2/$3"
++}
++
++# For other stuff under the home directory, it should be sufficient to put
++# a symbolic link for $HOME/$2 to the actual package location:
++test -d [$]HOME/$2 && {
++ test -n "$verbose" && echo " ... testing $3-directories under [$]HOME/$2"
++ test -d [$]HOME/$2/$3 && $1="[$]$1 [$]HOME/$2/$3"
++ test -d [$]HOME/$2/$3/$2 && $1="[$]$1 [$]HOME/$2/$3/$2"
++}
++
++test "$prefix" != /usr/local && \
++test -d /usr/local && {
++ test -n "$verbose" && echo " ... testing $3-directories under /usr/local"
++ test -d /usr/local/$3 && $1="[$]$1 /usr/local/$3"
++ test -d /usr/local/$3/$2 && $1="[$]$1 /usr/local/$3/$2"
++ test -d /usr/local/$3/$2/$3 && $1="[$]$1 /usr/local/$3/$2/$3"
++ test -d /usr/local/$2/$3 && $1="[$]$1 /usr/local/$2/$3"
++ test -d /usr/local/$2/$3/$2 && $1="[$]$1 /usr/local/$2/$3/$2"
++}
++
++test "$prefix" != NONE && \
++test -d $prefix && {
++ test -n "$verbose" && echo " ... testing $3-directories under $prefix"
++ test -d $prefix/$3 && $1="[$]$1 $prefix/$3"
++ test -d $prefix/$3/$2 && $1="[$]$1 $prefix/$3/$2"
++ test -d $prefix/$3/$2/$3 && $1="[$]$1 $prefix/$3/$2/$3"
++ test -d $prefix/$2/$3 && $1="[$]$1 $prefix/$2/$3"
++ test -d $prefix/$2/$3/$2 && $1="[$]$1 $prefix/$2/$3/$2"
++}
++
++test "$prefix" != /opt && \
++test -d /opt && {
++ test -n "$verbose" && echo " ... testing $3-directories under /opt"
++ test -d /opt/$3 && $1="[$]$1 /opt/$3"
++ test -d /opt/$3/$2 && $1="[$]$1 /opt/$3/$2"
++ test -d /opt/$3/$2/$3 && $1="[$]$1 /opt/$3/$2/$3"
++ test -d /opt/$2/$3 && $1="[$]$1 /opt/$2/$3"
++ test -d /opt/$2/$3/$2 && $1="[$]$1 /opt/$2/$3/$2"
++}
++
++test "$prefix" != /usr && \
++test -d /usr && {
++ test -n "$verbose" && echo " ... testing $3-directories under /usr"
++ test -d /usr/$3 && $1="[$]$1 /usr/$3"
++ test -d /usr/$3/$2 && $1="[$]$1 /usr/$3/$2"
++ test -d /usr/$3/$2/$3 && $1="[$]$1 /usr/$3/$2/$3"
++ test -d /usr/$2/$3 && $1="[$]$1 /usr/$2/$3"
++}
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
++dnl ------------------
++dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
++dnl older SCO configurations.
++AC_DEFUN([CF_SYS_TIME_SELECT],
++[
++AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
++AC_CACHE_VAL(cf_cv_sys_time_select,[
++AC_TRY_COMPILE([
++#include <sys/types.h>
++#ifdef HAVE_SYS_TIME_H
++#include <sys/time.h>
++#endif
++#ifdef HAVE_SYS_SELECT_H
++#include <sys/select.h>
++#endif
++],[],[cf_cv_sys_time_select=yes],
++ [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)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
++dnl --------
++dnl Make an uppercase version of a variable
++dnl $1=uppercase($2)
++AC_DEFUN([CF_UPPER],
++[
++$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_UTF8_LIB version: 4 updated: 2003/03/01 18:36:42
++dnl -----------
++dnl Check for multibyte support, and if not found, utf8 compatibility library
++AC_DEFUN([CF_UTF8_LIB],
++[
++AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
++ cf_save_LIBS="$LIBS"
++ AC_TRY_LINK([
++#include <stdlib.h>],[putwc(0,0);],
++ [cf_cv_utf8_lib=yes],
++ [LIBS="-lutf8 $LIBS"
++ AC_TRY_LINK([
++#include <libutf8.h>],[putwc(0,0);],
++ [cf_cv_utf8_lib=add-on],
++ [cf_cv_utf8_lib=no])
++ LIBS="$cf_save_LIBS"
++])])
++
++# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
++# ncurses/ncursesw:
++if test "$cf_cv_utf8_lib" = "add-on" ; then
++ AC_DEFINE(HAVE_LIBUTF8_H)
++ LIBS="-lutf8 $LIBS"
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59
++dnl ------------------
++dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
++dnl libraries.
++AC_DEFUN([CF_WITH_CURSES_DIR],[
++AC_ARG_WITH(curses-dir,
++ [ --with-curses-dir=DIR directory in which (n)curses is installed],
++ [CF_PATH_SYNTAX(withval)
++ cf_cv_curses_dir=$withval],
++ [cf_cv_curses_dir=no])
++])dnl
+diff -urNd -urNd ncurses-5.3/test/bs.c ncurses-5.3.20030906.orig/test/bs.c
+--- ncurses-5.3/test/bs.c Sat Jun 29 18:32:18 2002
++++ ncurses-5.3.20030906.orig/test/bs.c Tue May 13 20:08:23 2003
+@@ -7,11 +7,9 @@
+ * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
+ * v2.1 with ncurses mouse support, September 1995
+ *
+- * $Id: bs.c,v 1.36 2002/06/29 23:32:18 tom Exp $
++ * $Id: bs.c,v 1.37 2002/10/19 22:11:47 tom Exp $
+ */
+
+-#include <ctype.h>
+-#include <assert.h>
+ #include <time.h>
+
+ #include <test.priv.h>
+diff -urNd -urNd ncurses-5.3/test/cardfile.c ncurses-5.3.20030906.orig/test/cardfile.c
+--- ncurses-5.3/test/cardfile.c Sun Sep 1 12:59:48 2002
++++ ncurses-5.3.20030906.orig/test/cardfile.c Tue May 13 20:08:23 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,26 +29,28 @@
+ /*
+ * Author: Thomas E. Dickey <dickey@clark.net> 1999
+ *
+- * $Id: cardfile.c,v 1.19 2002/09/01 17:59:48 tom Exp $
++ * $Id: cardfile.c,v 1.23 2003/04/26 16:43:56 tom Exp $
+ *
+- * File format: text beginning in column 1 is a title; other text forms the content.
++ * File format: text beginning in column 1 is a title; other text is content.
+ */
+
+ #include <test.priv.h>
+
+-#if HAVE_FORM_H && HAVE_PANEL_H && HAVE_LIBFORM && HAVE_LIBPANEL
++#if USE_LIBFORM && USE_LIBPANEL
+
+ #include <form.h>
+ #include <panel.h>
+
+-#include <ctype.h>
+-
+ #define VISIBLE_CARDS 10
+ #define OFFSET_CARD 2
+
+-#ifndef CTRL
+-#define CTRL(x) ((x) & 0x1f)
+-#endif
++enum {
++ MY_CTRL_x = MAX_FORM_COMMAND
++ ,MY_CTRL_N
++ ,MY_CTRL_P
++ ,MY_CTRL_Q
++ ,MY_CTRL_W
++};
+
+ typedef struct _card {
+ struct _card *link;
+@@ -273,14 +275,14 @@
+
+ switch (c) {
+ case CTRL('W'):
+- return (MAX_FORM_COMMAND + 4);
++ return (MY_CTRL_W);
+ case CTRL('N'):
+- return (MAX_FORM_COMMAND + 3);
++ return (MY_CTRL_N);
+ case CTRL('P'):
+- return (MAX_FORM_COMMAND + 2);
++ return (MY_CTRL_P);
+ case CTRL('Q'):
+ case 033:
+- return (MAX_FORM_COMMAND + 1);
++ return (MY_CTRL_Q);
+
+ case KEY_BACKSPACE:
+ return (REQ_DEL_PREV);
+@@ -311,10 +313,12 @@
+ f[0] = new_field(1, form_wide, 0, 0, 0, 0);
+ set_field_back(f[0], A_REVERSE);
+ set_field_buffer(f[0], 0, p->title);
++ field_opts_off(f[0], O_BLANK);
+
+ f[1] = new_field(form_high - 1, form_wide, 1, 0, 0, 0);
+ set_field_buffer(f[1], 0, p->content);
+ set_field_just(f[1], JUSTIFY_LEFT);
++ field_opts_off(f[1], O_BLANK);
+
+ f[2] = 0;
+ return f;
+@@ -394,18 +398,19 @@
+ break;
+ case E_UNKNOWN_COMMAND:
+ switch (ch) {
+- case MAX_FORM_COMMAND + 1:
++ case MY_CTRL_Q:
+ finished = TRUE;
+ break;
+- case MAX_FORM_COMMAND + 2:
++ case MY_CTRL_P:
+ top_card = prev_card(top_card);
+ order_cards(top_card, visible_cards);
+ break;
+- case MAX_FORM_COMMAND + 3:
++ case MY_CTRL_N:
+ top_card = next_card(top_card);
+ order_cards(top_card, visible_cards);
+ break;
+- case MAX_FORM_COMMAND + 4:
++ case MY_CTRL_W:
++ form_driver(top_card->form, REQ_VALIDATION);
+ write_data(fname);
+ break;
+ #if defined(KEY_RESIZE) && HAVE_WRESIZE
+diff -urNd -urNd ncurses-5.3/test/configure ncurses-5.3.20030906.orig/test/configure
+--- ncurses-5.3/test/configure Sat Apr 6 17:16:16 2002
++++ ncurses-5.3.20030906.orig/test/configure Sun Jul 20 14:02:08 2003
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated automatically using autoconf version 2.13.20000819
++# Generated automatically using autoconf version 2.13.20020210
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+@@ -183,6 +183,7 @@
+ EOF
+ cat <<EOF
+ --enable and --with options recognized:
++ --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)
+@@ -336,7 +337,7 @@
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+- echo "configure generated by autoconf version 2.13.20000819"
++ echo "configure generated by autoconf version 2.13.20020210"
+ exit 0 ;;
+
+ -with-* | --with-*)
+@@ -526,10 +527,91 @@
+
+
+
++
++test -f config.guess || ( test -f ../config.guess && cp ../config.guess ./ )
++
++
++test -f config.sub || ( test -f ../config.sub && cp ../config.sub ./ )
++
++ac_aux_dir=
++for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
++ if test -f $ac_dir/install-sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install-sh -c"
++ break
++ elif test -f $ac_dir/install.sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install.sh -c"
++ break
++ fi
++done
++if test -z "$ac_aux_dir"; then
++ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
++fi
++ac_config_guess=$ac_aux_dir/config.guess
++ac_config_sub=$ac_aux_dir/config.sub
++ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
++
++
++if test -f $srcdir/config.guess ; then
++
++# Make sure we can run config.sub.
++if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
++else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
++fi
++
++echo $ac_n "checking host system type""... $ac_c" 1>&6
++echo "configure:565: checking host system type" >&5
++
++host_alias=$host
++case "$host_alias" in
++NONE)
++ case $nonopt in
++ NONE)
++ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
++ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
++ fi ;;
++ *) host_alias=$nonopt ;;
++ esac ;;
++esac
++
++host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++echo "$ac_t""$host" 1>&6
++
++ system_name="$host_os"
++else
++ system_name="`(uname -s -r) 2>/dev/null`"
++ if test -z "$system_name" ; then
++ system_name="`(hostname) 2>/dev/null`"
++ fi
++fi
++test -n "$system_name" && cat >> confdefs.h <<EOF
++#define SYSTEM_NAME "$system_name"
++EOF
++
++if eval "test \"`echo '$''{'cf_cv_system_name'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ cf_cv_system_name="$system_name"
++fi
++
++
++test -z "$system_name" && system_name="$cf_cv_system_name"
++test -n "$cf_cv_system_name" && echo "$ac_t""Configuring for $cf_cv_system_name" 1>&6
++
++if test ".$system_name" != ".$cf_cv_system_name" ; then
++ echo "$ac_t""Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" 1>&6
++ { echo "configure: error: "Please remove config.cache and try again."" 1>&2; exit 1; }
++fi
++
++
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:533: checking for $ac_word" >&5
++echo "configure:615: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -559,7 +641,7 @@
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:563: checking for $ac_word" >&5
++echo "configure:645: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -610,7 +692,7 @@
+ # Extract the first word of "cl", so it can be a program name with args.
+ set dummy cl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:614: checking for $ac_word" >&5
++echo "configure:696: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -642,7 +724,7 @@
+ fi
+
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:646: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++echo "configure:728: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -653,12 +735,12 @@
+
+ cat > conftest.$ac_ext << EOF
+
+-#line 657 "configure"
++#line 739 "configure"
+ #include "confdefs.h"
+
+ main(){return(0);}
+ EOF
+-if { (eval echo configure:662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+@@ -684,12 +766,12 @@
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:688: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:770: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:693: checking whether we are using GNU C" >&5
++echo "configure:775: checking whether we are using GNU C" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -698,7 +780,7 @@
+ yes;
+ #endif
+ EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+ else
+ ac_cv_prog_gcc=no
+@@ -717,7 +799,7 @@
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:721: checking whether ${CC-cc} accepts -g" >&5
++echo "configure:803: checking whether ${CC-cc} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -748,6 +830,86 @@
+ fi
+ fi
+
++echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
++echo "configure:835: checking how to run the C preprocessor" >&5
++# On Suns, sometimes $CPP names a directory.
++if test -n "$CPP" && test -d "$CPP"; then
++ CPP=
++fi
++if test -z "$CPP"; then
++if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ # This must be in double quotes, not single quotes, because CPP may get
++ # substituted into the Makefile and "${CC-cc}" will confuse make.
++ CPP="${CC-cc} -E"
++ # On the NeXT, cc -E runs the code through the compiler's parser,
++ # not just through cpp.
++ cat > conftest.$ac_ext <<EOF
++#line 850 "configure"
++#include "confdefs.h"
++#include <assert.h>
++Syntax Error
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:856: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++ :
++else
++ echo "$ac_err" >&5
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPP="${CC-cc} -E -traditional-cpp"
++ cat > conftest.$ac_ext <<EOF
++#line 867 "configure"
++#include "confdefs.h"
++#include <assert.h>
++Syntax Error
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++ :
++else
++ echo "$ac_err" >&5
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPP="${CC-cc} -nologo -E"
++ cat > conftest.$ac_ext <<EOF
++#line 884 "configure"
++#include "confdefs.h"
++#include <assert.h>
++Syntax Error
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:890: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++ :
++else
++ echo "$ac_err" >&5
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPP=/lib/cpp
++fi
++rm -f conftest*
++fi
++rm -f conftest*
++fi
++rm -f conftest*
++ ac_cv_prog_CPP="$CPP"
++fi
++ CPP="$ac_cv_prog_CPP"
++else
++ ac_cv_prog_CPP="$CPP"
++fi
++echo "$ac_t""$CPP" 1>&6
++
+
+ CC_G_OPT="-g"
+ CC_SHARED_OPTS=unknown
+@@ -775,6 +937,45 @@
+ cf_cv_abi_version=""
+ cf_cv_rel_version=""
+
++cf_cv_screen=curses
++cf_cv_libtype=
++
++
++
++# Check whether --with-curses-dir or --without-curses-dir was given.
++if test "${with_curses_dir+set}" = set; then
++ withval="$with_curses_dir"
++
++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%$ac_default_prefix%`
++ ;;
++ esac
++ ;; #(vi
++.NONE/*)
++ withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++*)
++ { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
++ ;;
++esac
++
++ cf_cv_curses_dir=$withval
++else
++ cf_cv_curses_dir=no
++fi
++
++
++
+
+ # Check whether --with-5lib or --without-5lib was given.
+ if test "${with_5lib+set}" = set; then
+@@ -785,87 +986,303 @@
+
+
+
+-
+ # Check whether --with-ncursesw or --without-ncursesw was given.
+ if test "${with_ncursesw+set}" = set; then
+ withval="$with_ncursesw"
++ cf_cv_screen=ncursesw
++fi
++
++
++
++# Check whether --with-ncurses or --without-ncurses was given.
++if test "${with_ncurses+set}" = set; then
++ withval="$with_ncurses"
++ cf_cv_screen=ncurses
++fi
++
++
++case $cf_cv_screen in
++curses)
++
++
++echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
++echo "configure:1010: checking for extra include directories" >&5
++if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
+
+- cat >> confdefs.h <<\EOF
+-#define _GNU_SOURCE 1
+-EOF
++cf_cv_curses_incdir=no
++case $host_os in #(vi
++hpux10.*|hpux11.*) #(vi
++ test -d /usr/include/curses_colr && \
++ cf_cv_curses_incdir="-I/usr/include/curses_colr"
++ ;;
++sunos3*|sunos4*)
++ test -d /usr/5lib && \
++ test -d /usr/5include && \
++ cf_cv_curses_incdir="-I/usr/5include"
++ ;;
++esac
+
+- cat >> confdefs.h <<\EOF
+-#define _XOPEN_SOURCE_EXTENDED 1
++fi
++
++echo "$ac_t""$cf_cv_curses_incdir" 1>&6
++test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
++
++echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
++echo "configure:1034: checking if we have identified curses headers" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++cf_cv_ncurses_header=none
++for cf_header in \
++ curses.h \
++ ncurses.h \
++ ncurses/curses.h \
++ ncurses/ncurses.h
++do
++cat > conftest.$ac_ext <<EOF
++#line 1047 "configure"
++#include "confdefs.h"
++#include <${cf_header}>
++int main() {
++initscr(); tgoto("?", 0,0)
++; return 0; }
+ EOF
++if { (eval echo configure:1054: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ cf_cv_ncurses_header=$cf_header; break
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++fi
++rm -f conftest*
++done
+
+- echo $ac_n "checking for initscr""... $ac_c" 1>&6
+-echo "configure:803: checking for initscr" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
++fi
++
++echo "$ac_t""$cf_cv_ncurses_header" 1>&6
++
++if test "$cf_cv_ncurses_header" = none ; then
++ { echo "configure: error: No curses header-files found" 1>&2; exit 1; }
++fi
++
++# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
++for ac_hdr in $cf_cv_ncurses_header
++do
++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
++echo "configure:1077: checking for $ac_hdr" >&5
++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 808 "configure"
++#line 1082 "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. */
+-/* 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 <$ac_hdr>
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1087: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++ rm -rf conftest*
++ eval "ac_cv_header_$ac_safe=yes"
++else
++ echo "$ac_err" >&5
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_header_$ac_safe=no"
++fi
++rm -f conftest*
++fi
++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
++ cat >> confdefs.h <<EOF
++#define $ac_tr_hdr 1
++EOF
++
++else
++ echo "$ac_t""no" 1>&6
++fi
++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_initscr) || defined (__stub___initscr)
+-choke me
++
++
++echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
++echo "configure:1117: checking for ncurses version" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ cf_cv_ncurses_version=no
++ cf_tempfile=out$$
++ rm -f $cf_tempfile
++ if test "$cross_compiling" = yes; then
++
++
++ # This will not work if the preprocessor splits the line after the
++ # Autoconf token. The 'unproto' program does that.
++ cat > conftest.$ac_ext <<EOF
++#include <${cf_cv_ncurses_header-curses.h}>
++#undef Autoconf
++#ifdef NCURSES_VERSION
++Autoconf NCURSES_VERSION
+ #else
+-initscr();
++#ifdef __NCURSES_H
++Autoconf "old"
++#endif
++;
++#endif
++EOF
++ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
++ { (eval echo configure:1143: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
++ if test -f conftest.out ; then
++ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
++ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
++ rm -f conftest.out
++ fi
++
++else
++ cat > conftest.$ac_ext <<EOF
++#line 1152 "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
+ #endif
++ exit(0);
++}
++EOF
++if { (eval echo configure:1176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++then
++
++ cf_cv_ncurses_version=`cat $cf_tempfile`
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++fi
++rm -fr conftest*
++fi
++
++ rm -f $cf_tempfile
++
++fi
++
++echo "$ac_t""$cf_cv_ncurses_version" 1>&6
++test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
++#define NCURSES 1
++EOF
++
++
++
+
++echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
++echo "configure:1200: checking if we have identified curses libraries" >&5
++cat > conftest.$ac_ext <<EOF
++#line 1202 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr(); tgoto("?", 0,0)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+- eval "ac_cv_func_initscr=yes"
++ cf_result=yes
+ else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+- eval "ac_cv_func_initscr=no"
++ cf_result=no
+ fi
+ rm -f conftest*
++echo "$ac_t""$cf_result" 1>&6
++
++if test "$cf_result" = no ; then
++case $host_os in #(vi
++freebsd*) #(vi
++ echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
++echo "configure:1225: checking for tgoto in -lmytinfo" >&5
++ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-lmytinfo $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 1233 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto();
++
++int main() {
++tgoto()
++; return 0; }
++EOF
++if { (eval echo configure:1244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
+ fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
+
+-if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
++fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- :
++ LIBS="-lmytinfo $LIBS"
+ else
+ echo "$ac_t""no" 1>&6
++fi
+
+- echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
+-echo "configure:850: checking for Gpm_Open in -lgpm" >&5
+-ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
++ ;;
++hpux10.*|hpux11.*) #(vi
++ echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
++echo "configure:1267: checking for initscr in -lcur_colr" >&5
++ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ ac_save_LIBS="$LIBS"
+-LIBS="-lgpm $LIBS"
++LIBS="-lcur_colr $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 858 "configure"
++#line 1275 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char Gpm_Open();
++char initscr();
+
+ int main() {
+-Gpm_Open()
++initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -880,144 +1297,857 @@
+ fi
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- ac_tr_lib=HAVE_LIB`echo gpm | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+- cat >> confdefs.h <<EOF
+-#define $ac_tr_lib 1
+-EOF
++
++ LIBS="-lcur_colr $LIBS"
++ ac_cv_func_initscr=yes
++
++else
++ echo "$ac_t""no" 1>&6
+
+- LIBS="-lgpm $LIBS"
++ echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
++echo "configure:1309: checking for initscr in -lHcurses" >&5
++ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-lHcurses $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 1317 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr();
++
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:1328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
++fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
+
++fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++
++ # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
++ LIBS="-lHcurses $LIBS"
++ CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
++ ac_cv_func_initscr=yes
++
+ else
+ echo "$ac_t""no" 1>&6
+ fi
+
+- LIB_NAME=ncursesw
+- echo $ac_n "checking for putwc""... $ac_c" 1>&6
+-echo "configure:898: checking for putwc" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_putwc'+set}'`\" = set"; then
++fi
++
++ ;;
++linux*) # Suse Linux does not follow /usr/lib convention
++ LIBS="$LIBS -L/lib"
++ ;;
++sunos3*|sunos4*)
++ test -d /usr/5lib && \
++ LIBS="$LIBS -L/usr/5lib -lcurses -ltermcap"
++ ac_cv_func_initscr=yes
++ ;;
++esac
++
++if test ".$ac_cv_func_initscr" != .yes ; then
++ cf_save_LIBS="$LIBS"
++ cf_term_lib=""
++ cf_curs_lib=""
++
++ 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.
++ echo $ac_n "checking for tgoto""... $ac_c" 1>&6
++echo "configure:1381: checking for tgoto" >&5
++if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 903 "configure"
++#line 1386 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char putwc(); below. */
++ which can conflict with char tgoto(); below. */
+ #include <assert.h>
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char putwc();
++char tgoto();
+
+ 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_putwc) || defined (__stub___putwc)
++#if defined (__stub_tgoto) || defined (__stub___tgoto)
+ choke me
+ #else
+-putwc();
++tgoto();
+ #endif
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+- eval "ac_cv_func_putwc=yes"
++ eval "ac_cv_func_tgoto=yes"
+ else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+- eval "ac_cv_func_putwc=no"
++ eval "ac_cv_func_tgoto=no"
+ fi
+ rm -f conftest*
+ fi
+
+-if eval "test \"`echo '$ac_cv_func_'putwc`\" = yes"; then
++if eval "test \"`echo '$ac_cv_func_'tgoto`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- :
++ cf_term_lib=predefined
+ else
+ echo "$ac_t""no" 1>&6
+
+-echo $ac_n "checking for putwc in libutf8""... $ac_c" 1>&6
+-echo "configure:945: checking for putwc in libutf8" >&5
+-if eval "test \"`echo '$''{'cf_cv_libutf8'+set}'`\" = set"; then
++ for cf_term_lib in $cf_check_list termcap termlib unknown
++ do
++ echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
++echo "configure:1430: checking for tgoto in -l$cf_term_lib" >&5
++ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-
+- cf_save_LIBS="$LIBS"
+- LIBS="-lutf8 $LIBS"
++ ac_save_LIBS="$LIBS"
++LIBS="-l$cf_term_lib $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 953 "configure"
++#line 1438 "configure"
+ #include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto();
+
+-#include <libutf8.h>
+ int main() {
+-putwc(0,0);
++tgoto()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+- cf_cv_libutf8=yes
++ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+- cf_cv_libutf8=no
++ eval "ac_cv_lib_$ac_lib_var=no"
+ fi
+ rm -f conftest*
+- LIBS="$cf_save_LIBS"
++LIBS="$ac_save_LIBS"
+
+ fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ break
++else
++ echo "$ac_t""no" 1>&6
++fi
+
+-echo "$ac_t""$cf_cv_libutf8" 1>&6
++ done
++
++fi
+
+-if test "$cf_cv_libutf8" = yes ; then
+- cat >> confdefs.h <<\EOF
+-#define HAVE_LIBUTF8_H 1
++
++ # Check for library containing initscr
++ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
++ for cf_curs_lib in $cf_check_list xcurses jcurses unknown
++ do
++ echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
++echo "configure:1479: checking for initscr in -l$cf_curs_lib" >&5
++ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-l$cf_curs_lib $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 1487 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr();
++
++int main() {
++initscr()
++; return 0; }
+ EOF
++if { (eval echo configure:1498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
++fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
+
+- LIBS="-lutf8 $LIBS"
+ fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ break
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++ done
++ test $cf_curs_lib = unknown && { echo "configure: error: no curses library found" 1>&2; exit 1; }
+
++ LIBS="-l$cf_curs_lib $cf_save_LIBS"
++ if test "$cf_term_lib" = unknown ; then
++ echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
++echo "configure:1524: checking if we can link with $cf_curs_lib library" >&5
++ cat > conftest.$ac_ext <<EOF
++#line 1526 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:1533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ cf_result=yes
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_result=no
++fi
++rm -f conftest*
++ echo "$ac_t""$cf_result" 1>&6
++ test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; }
++ elif test "$cf_curs_lib" = "$cf_term_lib" ; then
++ :
++ elif test "$cf_term_lib" != predefined ; then
++ echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
++echo "configure:1549: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
++ cat > conftest.$ac_ext <<EOF
++#line 1551 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr(); tgoto((char *)0, 0, 0);
++; return 0; }
++EOF
++if { (eval echo configure:1558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ cf_result=no
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++
++ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
++ cat > conftest.$ac_ext <<EOF
++#line 1568 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:1575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ cf_result=yes
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_result=error
++fi
++rm -f conftest*
++
++fi
++rm -f conftest*
++ echo "$ac_t""$cf_result" 1>&6
++ fi
++fi
+ fi
+
+- for p in $HOME /usr/local /usr
+- do
+- if test -f $p/include/ncursesw/curses.h
+- then
+- CPPFLAGS="$CPPFLAGS -I$p/include/ncursesw"
+- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
+- test $p != /usr && LIBS="-L$p/lib $LIBS"
+- break
+- elif test $p != /usr
+- then
+- if test -f $p/include/curses.h
++
++ ;;
++ncurses)
++
++
++cf_ncuhdr_root=ncurses
++
++test -n "$cf_cv_curses_dir" && \
++test "$cf_cv_curses_dir" != "no" && \
++CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
++
++echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
++echo "configure:1605: checking for $cf_ncuhdr_root header in include-path" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
++ ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
++ for cf_header in $cf_header_list
++ do
++
++ cat > conftest.$ac_ext <<EOF
++#line 1616 "configure"
++#include "confdefs.h"
++
++
++#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
++
++
++; return 0; }
++EOF
++if { (eval echo configure:1637: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ cf_cv_ncurses_h=$cf_header
++
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_cv_ncurses_h=no
++fi
++rm -f conftest*
++
++ test "$cf_cv_ncurses_h" != no && break
++ done
++
++fi
++
++echo "$ac_t""$cf_cv_ncurses_h" 1>&6
++
++if test "$cf_cv_ncurses_h" != no ; then
++ cf_cv_ncurses_header=$cf_cv_ncurses_h
++else
++echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
++echo "configure:1660: checking for $cf_ncuhdr_root include-path" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ test -n "$verbose" && echo
++ cf_search=""
++
++test -d $HOME && {
++ test -n "$verbose" && echo " ... testing 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"
++}
++
++# For other stuff under the home directory, it should be sufficient to put
++# a symbolic link for $HOME/$cf_ncuhdr_root to the actual package location:
++test -d $HOME/$cf_ncuhdr_root && {
++ test -n "$verbose" && echo " ... testing include-directories under $HOME/$cf_ncuhdr_root"
++ 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 "$prefix" != /usr/local && \
++test -d /usr/local && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != NONE && \
++test -d $prefix && {
++ test -n "$verbose" && echo " ... testing include-directories under $prefix"
++ test -d $prefix/include && cf_search="$cf_search $prefix/include"
++ test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
++ test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
++}
++
++test "$prefix" != /opt && \
++test -d /opt && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != /usr && \
++test -d /usr && {
++ test -n "$verbose" && echo " ... testing 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 "$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"
++}
++
++
++ test -n "$verbose" && echo search path $cf_search
++ cf_save2_CPPFLAGS="$CPPFLAGS"
++ for cf_incdir in $cf_search
++ do
++
++for cf_add_incdir in $cf_incdir
++do
++ while true
++ do
++ case $cf_add_incdir in
++ /usr/include) # (vi
++ ;;
++ /usr/local/include) # (vi
++ if test "$GCC" = yes
+ then
+- CPPFLAGS="$CPPFLAGS -I$p/include"
+- LIBS="-L$p/lib $LIBS"
++ cf_save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat > conftest.$ac_ext <<EOF
++#line 1755 "configure"
++#include "confdefs.h"
++#include <stdio.h>
++int main() {
++printf("Hello")
++; return 0; }
++EOF
++if { (eval echo configure:1762: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ :
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPPFLAGS="$cf_save_CPPFLAGS"
++fi
++rm -f conftest*
++ fi
++ ;;
++ *) # (vi
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ ;;
++ esac
++ 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"
++ done
++done
++
++ for cf_header in \
++ ncurses.h \
++ curses.h
++ do
++
++ cat > conftest.$ac_ext <<EOF
++#line 1789 "configure"
++#include "confdefs.h"
++
++
++#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
++
++
++; return 0; }
++EOF
++if { (eval echo configure:1810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ cf_cv_ncurses_h2=$cf_header
++
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_cv_ncurses_h2=no
++fi
++rm -f conftest*
++
++ if test "$cf_cv_ncurses_h2" != no ; then
++ cf_cv_ncurses_h2=$cf_incdir/$cf_header
++ test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
+ break
+ fi
+- fi
+- done
++ test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
++ done
++ CPPFLAGS="$cf_save2_CPPFLAGS"
++ test "$cf_cv_ncurses_h2" != no && break
++ done
++ test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
+
+ fi
+
++echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
++
++ cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
++ cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
++ if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
++ cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
++ fi
++
++for cf_add_incdir in $cf_1st_incdir
++do
++ while true
++ do
++ case $cf_add_incdir in
++ /usr/include) # (vi
++ ;;
++ /usr/local/include) # (vi
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat > conftest.$ac_ext <<EOF
++#line 1857 "configure"
++#include "confdefs.h"
++#include <stdio.h>
++int main() {
++printf("Hello")
++; return 0; }
++EOF
++if { (eval echo configure:1864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ :
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPPFLAGS="$cf_save_CPPFLAGS"
++fi
++rm -f conftest*
++ fi
++ ;;
++ *) # (vi
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ ;;
++ esac
++ 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"
++ done
++done
++
++
+ fi
+
++cat >> confdefs.h <<\EOF
++#define NCURSES 1
++EOF
+
+
+-# Check whether --with-ncurses or --without-ncurses was given.
+-if test "${with_ncurses+set}" = set; then
+- withval="$with_ncurses"
+- echo $ac_n "checking for initscr""... $ac_c" 1>&6
+-echo "configure:1016: checking for initscr" >&5
++case $cf_cv_ncurses_header in # (vi
++*ncurses.h)
++ cat >> confdefs.h <<\EOF
++#define HAVE_NCURSES_H 1
++EOF
++
++ ;;
++esac
++
++case $cf_cv_ncurses_header in # (vi
++ncurses/curses.h|ncurses/ncurses.h)
++ cat >> confdefs.h <<\EOF
++#define HAVE_NCURSES_NCURSES_H 1
++EOF
++
++ ;;
++ncursesw/curses.h|ncursesw/ncurses.h)
++ cat >> confdefs.h <<\EOF
++#define HAVE_NCURSESW_NCURSES_H 1
++EOF
++
++ ;;
++esac
++
++
++echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
++echo "configure:1919: checking for ncurses version" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ cf_cv_ncurses_version=no
++ cf_tempfile=out$$
++ rm -f $cf_tempfile
++ if test "$cross_compiling" = yes; then
++
++
++ # This will not work if the preprocessor splits the line after the
++ # Autoconf token. The 'unproto' program does that.
++ cat > conftest.$ac_ext <<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 configure:1945: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
++ if test -f conftest.out ; then
++ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
++ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
++ rm -f conftest.out
++ fi
++
++else
++ cat > conftest.$ac_ext <<EOF
++#line 1954 "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
++#endif
++ exit(0);
++}
++EOF
++if { (eval echo configure:1978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++then
++
++ cf_cv_ncurses_version=`cat $cf_tempfile`
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++fi
++rm -fr conftest*
++fi
++
++ rm -f $cf_tempfile
++
++fi
++
++echo "$ac_t""$cf_cv_ncurses_version" 1>&6
++test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
++#define NCURSES 1
++EOF
++
++
++
++
++
++cf_nculib_root=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 $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
++echo "configure:2009: checking for Gpm_Open in -lgpm" >&5
++ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-lgpm $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 2017 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char Gpm_Open();
++
++int main() {
++Gpm_Open()
++; return 0; }
++EOF
++if { (eval echo configure:2028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
++fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
++
++fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
++echo "configure:2044: checking for initscr in -lgpm" >&5
++ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-lgpm $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 2052 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr();
++
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:2063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
++fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
++
++fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ LIBS="$cf_ncurses_SAVE"
++else
++ echo "$ac_t""no" 1>&6
++cf_ncurses_LIBS="-lgpm"
++fi
++
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++
++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).
++ echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
++echo "configure:2094: checking for tgoto in -lmytinfo" >&5
++ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-lmytinfo $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 2102 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto();
++
++int main() {
++tgoto()
++; return 0; }
++EOF
++if { (eval echo configure:2113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
++fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
++
++fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++ ;;
++esac
++
++LIBS="$cf_ncurses_LIBS $LIBS"
++
++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
++then
++ LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
++else
++
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
++ cf_libdir=""
++ echo $ac_n "checking for initscr""... $ac_c" 1>&6
++echo "configure:2146: checking for initscr" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1021 "configure"
++#line 2151 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char initscr(); below. */
+@@ -1040,7 +2170,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_initscr=yes"
+ else
+@@ -1054,12 +2184,665 @@
+
+ if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- :
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+ echo "$ac_t""no" 1>&6
+
+- echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
+-echo "configure:1063: checking for Gpm_Open in -lgpm" >&5
++ cf_save_LIBS="$LIBS"
++ echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
++echo "configure:2194: checking for initscr in -l$cf_nculib_root" >&5
++ LIBS="-l$cf_nculib_root $LIBS"
++ cat > conftest.$ac_ext <<EOF
++#line 2197 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ echo "$ac_t""yes" 1>&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ echo "$ac_t""no" 1>&6
++ cf_search=""
++
++test -d $HOME && {
++ test -n "$verbose" && echo " ... testing 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"
++}
++
++# For other stuff under the home directory, it should be sufficient to put
++# a symbolic link for $HOME/$cf_nculib_root to the actual package location:
++test -d $HOME/$cf_nculib_root && {
++ test -n "$verbose" && echo " ... testing lib-directories under $HOME/$cf_nculib_root"
++ 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 "$prefix" != /usr/local && \
++test -d /usr/local && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != NONE && \
++test -d $prefix && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != /opt && \
++test -d /opt && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != /usr && \
++test -d /usr && {
++ test -n "$verbose" && echo " ... testing 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"
++}
++
++ for cf_libdir in $cf_search
++ do
++ echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
++echo "configure:2273: checking for -l$cf_nculib_root in $cf_libdir" >&5
++ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
++ cat > conftest.$ac_ext <<EOF
++#line 2276 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:2283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ echo "$ac_t""yes" 1>&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++ break
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ echo "$ac_t""no" 1>&6
++ LIBS="$cf_save_LIBS"
++fi
++rm -f conftest*
++ done
++
++fi
++rm -f conftest*
++
++fi
++
++eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
++
++if test $cf_found_library = no ; then
++ { echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
++fi
++
++
++fi
++
++if test -n "$cf_ncurses_LIBS" ; then
++ echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
++echo "configure:2314: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++ cf_ncurses_SAVE="$LIBS"
++ for p in $cf_ncurses_LIBS ; do
++ q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
++ if test "$q" != "$LIBS" ; then
++ LIBS="$q"
++ fi
++ done
++ cat > conftest.$ac_ext <<EOF
++#line 2323 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
++; return 0; }
++EOF
++if { (eval echo configure:2330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ echo "$ac_t""yes" 1>&6
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ echo "$ac_t""no" 1>&6
++ LIBS="$cf_ncurses_SAVE"
++fi
++rm -f conftest*
++fi
++
++
++cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++cat >> confdefs.h <<EOF
++#define $cf_nculib_ROOT 1
++EOF
++
++
++ LIB_NAME=ncurses
++ ;;
++ncursesw)
++ cf_cv_libtype=w
++
++echo $ac_n "checking for multibyte character support""... $ac_c" 1>&6
++echo "configure:2357: checking for multibyte character support" >&5
++if eval "test \"`echo '$''{'cf_cv_utf8_lib'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ cf_save_LIBS="$LIBS"
++ cat > conftest.$ac_ext <<EOF
++#line 2364 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++int main() {
++putwc(0,0);
++; return 0; }
++EOF
++if { (eval echo configure:2372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ cf_cv_utf8_lib=yes
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ LIBS="-lutf8 $LIBS"
++ cat > conftest.$ac_ext <<EOF
++#line 2381 "configure"
++#include "confdefs.h"
++
++#include <libutf8.h>
++int main() {
++putwc(0,0);
++; return 0; }
++EOF
++if { (eval echo configure:2389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ cf_cv_utf8_lib=add-on
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_cv_utf8_lib=no
++fi
++rm -f conftest*
++ LIBS="$cf_save_LIBS"
++
++fi
++rm -f conftest*
++fi
++
++echo "$ac_t""$cf_cv_utf8_lib" 1>&6
++
++# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
++# ncurses/ncursesw:
++if test "$cf_cv_utf8_lib" = "add-on" ; then
++ cat >> confdefs.h <<\EOF
++#define HAVE_LIBUTF8_H 1
++EOF
++
++ LIBS="-lutf8 $LIBS"
++fi
++
++
++
++cf_ncuhdr_root=ncursesw
++
++test -n "$cf_cv_curses_dir" && \
++test "$cf_cv_curses_dir" != "no" && \
++CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
++
++echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
++echo "configure:2426: checking for $cf_ncuhdr_root header in include-path" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
++ ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
++ for cf_header in $cf_header_list
++ do
++
++ cat > conftest.$ac_ext <<EOF
++#line 2437 "configure"
++#include "confdefs.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() {
++
++#ifdef NCURSES_VERSION
++
++#ifndef WACS_BSSB
++ make an error
++#endif
++
++printf("%s\n", NCURSES_VERSION);
++#else
++#ifdef __NCURSES_H
++printf("old\n");
++#else
++ make an error
++#endif
++#endif
++
++
++; return 0; }
++EOF
++if { (eval echo configure:2466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ cf_cv_ncurses_h=$cf_header
++
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_cv_ncurses_h=no
++fi
++rm -f conftest*
++
++ test "$cf_cv_ncurses_h" != no && break
++ done
++
++fi
++
++echo "$ac_t""$cf_cv_ncurses_h" 1>&6
++
++if test "$cf_cv_ncurses_h" != no ; then
++ cf_cv_ncurses_header=$cf_cv_ncurses_h
++else
++echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
++echo "configure:2489: checking for $cf_ncuhdr_root include-path" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ test -n "$verbose" && echo
++ cf_search=""
++
++test -d $HOME && {
++ test -n "$verbose" && echo " ... testing 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"
++}
++
++# For other stuff under the home directory, it should be sufficient to put
++# a symbolic link for $HOME/$cf_ncuhdr_root to the actual package location:
++test -d $HOME/$cf_ncuhdr_root && {
++ test -n "$verbose" && echo " ... testing include-directories under $HOME/$cf_ncuhdr_root"
++ 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 "$prefix" != /usr/local && \
++test -d /usr/local && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != NONE && \
++test -d $prefix && {
++ test -n "$verbose" && echo " ... testing include-directories under $prefix"
++ test -d $prefix/include && cf_search="$cf_search $prefix/include"
++ test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
++ test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
++}
++
++test "$prefix" != /opt && \
++test -d /opt && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != /usr && \
++test -d /usr && {
++ test -n "$verbose" && echo " ... testing 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 "$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"
++}
++
++
++ test -n "$verbose" && echo search path $cf_search
++ cf_save2_CPPFLAGS="$CPPFLAGS"
++ for cf_incdir in $cf_search
++ do
++
++for cf_add_incdir in $cf_incdir
++do
++ while true
++ do
++ case $cf_add_incdir in
++ /usr/include) # (vi
++ ;;
++ /usr/local/include) # (vi
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat > conftest.$ac_ext <<EOF
++#line 2584 "configure"
++#include "confdefs.h"
++#include <stdio.h>
++int main() {
++printf("Hello")
++; return 0; }
++EOF
++if { (eval echo configure:2591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ :
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPPFLAGS="$cf_save_CPPFLAGS"
++fi
++rm -f conftest*
++ fi
++ ;;
++ *) # (vi
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ ;;
++ esac
++ 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"
++ done
++done
++
++ for cf_header in \
++ ncurses.h \
++ curses.h
++ do
++
++ cat > conftest.$ac_ext <<EOF
++#line 2618 "configure"
++#include "confdefs.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() {
++
++#ifdef NCURSES_VERSION
++
++#ifndef WACS_BSSB
++ make an error
++#endif
++
++printf("%s\n", NCURSES_VERSION);
++#else
++#ifdef __NCURSES_H
++printf("old\n");
++#else
++ make an error
++#endif
++#endif
++
++
++; return 0; }
++EOF
++if { (eval echo configure:2647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ cf_cv_ncurses_h2=$cf_header
++
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_cv_ncurses_h2=no
++fi
++rm -f conftest*
++
++ if test "$cf_cv_ncurses_h2" != no ; then
++ cf_cv_ncurses_h2=$cf_incdir/$cf_header
++ test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
++ break
++ fi
++ test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
++ done
++ CPPFLAGS="$cf_save2_CPPFLAGS"
++ test "$cf_cv_ncurses_h2" != no && break
++ done
++ test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
++
++fi
++
++echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
++
++ cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
++ cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
++ if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
++ cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
++ fi
++
++for cf_add_incdir in $cf_1st_incdir
++do
++ while true
++ do
++ case $cf_add_incdir in
++ /usr/include) # (vi
++ ;;
++ /usr/local/include) # (vi
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat > conftest.$ac_ext <<EOF
++#line 2694 "configure"
++#include "confdefs.h"
++#include <stdio.h>
++int main() {
++printf("Hello")
++; return 0; }
++EOF
++if { (eval echo configure:2701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ :
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPPFLAGS="$cf_save_CPPFLAGS"
++fi
++rm -f conftest*
++ fi
++ ;;
++ *) # (vi
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ ;;
++ esac
++ 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"
++ done
++done
++
++
++fi
++
++cat >> confdefs.h <<\EOF
++#define NCURSES 1
++EOF
++
++
++case $cf_cv_ncurses_header in # (vi
++*ncurses.h)
++ cat >> confdefs.h <<\EOF
++#define HAVE_NCURSES_H 1
++EOF
++
++ ;;
++esac
++
++case $cf_cv_ncurses_header in # (vi
++ncurses/curses.h|ncurses/ncurses.h)
++ cat >> confdefs.h <<\EOF
++#define HAVE_NCURSES_NCURSES_H 1
++EOF
++
++ ;;
++ncursesw/curses.h|ncursesw/ncurses.h)
++ cat >> confdefs.h <<\EOF
++#define HAVE_NCURSESW_NCURSES_H 1
++EOF
++
++ ;;
++esac
++
++
++echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
++echo "configure:2756: checking for ncurses version" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++ cf_cv_ncurses_version=no
++ cf_tempfile=out$$
++ rm -f $cf_tempfile
++ if test "$cross_compiling" = yes; then
++
++
++ # This will not work if the preprocessor splits the line after the
++ # Autoconf token. The 'unproto' program does that.
++ cat > conftest.$ac_ext <<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 configure:2782: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
++ if test -f conftest.out ; then
++ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
++ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
++ rm -f conftest.out
++ fi
++
++else
++ cat > conftest.$ac_ext <<EOF
++#line 2791 "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
++#endif
++ exit(0);
++}
++EOF
++if { (eval echo configure:2815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++then
++
++ cf_cv_ncurses_version=`cat $cf_tempfile`
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++fi
++rm -fr conftest*
++fi
++
++ rm -f $cf_tempfile
++
++fi
++
++echo "$ac_t""$cf_cv_ncurses_version" 1>&6
++test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
++#define NCURSES 1
++EOF
++
++
++
++
++
++cf_nculib_root=ncursesw
++ # This works, except for the special case where we find gpm, but
++ # ncurses is in a nonstandard location via $LIBS, and we really want
++ # to link gpm.
++cf_ncurses_LIBS=""
++cf_ncurses_SAVE="$LIBS"
++echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
++echo "configure:2846: checking for Gpm_Open in -lgpm" >&5
+ ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -1067,7 +2850,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lgpm $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 1071 "configure"
++#line 2854 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -1078,7 +2861,7 @@
+ Gpm_Open()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -1093,52 +2876,115 @@
+ fi
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- ac_tr_lib=HAVE_LIB`echo gpm | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+- cat >> confdefs.h <<EOF
+-#define $ac_tr_lib 1
+-EOF
++ echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
++echo "configure:2881: checking for initscr in -lgpm" >&5
++ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-lgpm $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 2889 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr();
+
+- LIBS="-lgpm $LIBS"
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:2900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
++fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
+
++fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ LIBS="$cf_ncurses_SAVE"
+ else
+ echo "$ac_t""no" 1>&6
++cf_ncurses_LIBS="-lgpm"
+ fi
+
+- LIB_NAME=ncurses
+- for p in $HOME /usr/local /usr
+- do
+- if test -f $p/include/ncurses/curses.h
+- then
+- CPPFLAGS="$CPPFLAGS -I$p/include/ncurses"
+- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
+- test $p != /usr && LIBS="-L$p/lib $LIBS"
+- break
+- elif test $p != /usr
+- then
+- if test -f $p/include/curses.h
+- then
+- CPPFLAGS="$CPPFLAGS -I$p/include"
+- LIBS="-L$p/lib $LIBS"
+- break
+- fi
+- fi
+- done
+-
++else
++ echo "$ac_t""no" 1>&6
+ fi
+
++
++case $host_os in #(vi
++freebsd*)
++ # This is only necessary if you are linking against an obsolete
++ # version of ncurses (but it should do no harm, since it's static).
++ echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
++echo "configure:2931: checking for tgoto in -lmytinfo" >&5
++ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ ac_save_LIBS="$LIBS"
++LIBS="-lmytinfo $LIBS"
++cat > conftest.$ac_ext <<EOF
++#line 2939 "configure"
++#include "confdefs.h"
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto();
++
++int main() {
++tgoto()
++; return 0; }
++EOF
++if { (eval echo configure:2950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=yes"
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ eval "ac_cv_lib_$ac_lib_var=no"
+ fi
++rm -f conftest*
++LIBS="$ac_save_LIBS"
+
++fi
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
++else
++ echo "$ac_t""no" 1>&6
++fi
+
++ ;;
++esac
+
++LIBS="$cf_ncurses_LIBS $LIBS"
+
+-echo $ac_n "checking for initscr""... $ac_c" 1>&6
+-echo "configure:1137: checking for initscr" >&5
++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
++then
++ LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
++else
++
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
++ cf_libdir=""
++ echo $ac_n "checking for initscr""... $ac_c" 1>&6
++echo "configure:2983: checking for initscr" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1142 "configure"
++#line 2988 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char initscr(); below. */
+@@ -1161,7 +3007,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_initscr=yes"
+ else
+@@ -1175,69 +3021,185 @@
+
+ if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- :
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+ echo "$ac_t""no" 1>&6
+
+-echo $ac_n "checking for initscr in -l$LIB_NAME""... $ac_c" 1>&6
+-echo "configure:1184: checking for initscr in -l$LIB_NAME" >&5
+-ac_lib_var=`echo $LIB_NAME'_'initscr | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- ac_save_LIBS="$LIBS"
+-LIBS="-l$LIB_NAME $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 1192 "configure"
++ cf_save_LIBS="$LIBS"
++ echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
++echo "configure:3031: checking for initscr in -l$cf_nculib_root" >&5
++ LIBS="-l$cf_nculib_root $LIBS"
++ cat > conftest.$ac_ext <<EOF
++#line 3034 "configure"
+ #include "confdefs.h"
+-/* Override any gcc2 internal prototype to avoid an error. */
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr();
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr()
++; return 0; }
++EOF
++if { (eval echo configure:3041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ echo "$ac_t""yes" 1>&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ echo "$ac_t""no" 1>&6
++ cf_search=""
++
++test -d $HOME && {
++ test -n "$verbose" && echo " ... testing 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"
++}
++
++# For other stuff under the home directory, it should be sufficient to put
++# a symbolic link for $HOME/$cf_nculib_root to the actual package location:
++test -d $HOME/$cf_nculib_root && {
++ test -n "$verbose" && echo " ... testing lib-directories under $HOME/$cf_nculib_root"
++ 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 "$prefix" != /usr/local && \
++test -d /usr/local && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != NONE && \
++test -d $prefix && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != /opt && \
++test -d /opt && {
++ test -n "$verbose" && echo " ... testing 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 "$prefix" != /usr && \
++test -d /usr && {
++ test -n "$verbose" && echo " ... testing 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"
++}
+
++ for cf_libdir in $cf_search
++ do
++ echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
++echo "configure:3110: checking for -l$cf_nculib_root in $cf_libdir" >&5
++ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
++ cat > conftest.$ac_ext <<EOF
++#line 3113 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=yes"
++ echo "$ac_t""yes" 1>&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++ break
+ else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=no"
++ echo "$ac_t""no" 1>&6
++ LIBS="$cf_save_LIBS"
+ fi
+ rm -f conftest*
+-LIBS="$ac_save_LIBS"
++ done
++
++fi
++rm -f conftest*
++
++fi
++
++eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+
++if test $cf_found_library = no ; then
++ { echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
+ fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+- echo "$ac_t""yes" 1>&6
+- ac_tr_lib=HAVE_LIB`echo $LIB_NAME | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+- cat >> confdefs.h <<EOF
+-#define $ac_tr_lib 1
+-EOF
+
+- LIBS="-l$LIB_NAME $LIBS"
+
++fi
++
++if test -n "$cf_ncurses_LIBS" ; then
++ echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
++echo "configure:3151: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++ cf_ncurses_SAVE="$LIBS"
++ for p in $cf_ncurses_LIBS ; do
++ q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
++ if test "$q" != "$LIBS" ; then
++ LIBS="$q"
++ fi
++ done
++ cat > conftest.$ac_ext <<EOF
++#line 3160 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
++; return 0; }
++EOF
++if { (eval echo configure:3167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ echo "$ac_t""yes" 1>&6
+ else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
+ echo "$ac_t""no" 1>&6
++ LIBS="$cf_ncurses_SAVE"
+ fi
+-
++rm -f conftest*
+ fi
+
+-echo $ac_n "checking for form_driver in -lform""... $ac_c" 1>&6
+-echo "configure:1233: checking for form_driver in -lform" >&5
+-ac_lib_var=`echo form'_'form_driver | sed 'y%./+-%__p_%'`
++
++cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++cat >> confdefs.h <<EOF
++#define $cf_nculib_ROOT 1
++EOF
++
++
++ LIB_NAME=ncursesw
++ ;;
++esac
++
++
++
++echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
++echo "configure:3195: checking for form_driver in -lform$cf_cv_libtype" >&5
++ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ ac_save_LIBS="$LIBS"
+-LIBS="-lform $LIBS"
++LIBS="-lform$cf_cv_libtype $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 1241 "configure"
++#line 3203 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -1248,7 +3210,7 @@
+ form_driver()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -1263,28 +3225,28 @@
+ fi
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- ac_tr_lib=HAVE_LIB`echo form | sed -e 's/[^a-zA-Z0-9_]/_/g' \
++ ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ cat >> confdefs.h <<EOF
+ #define $ac_tr_lib 1
+ EOF
+
+- LIBS="-lform $LIBS"
++ LIBS="-lform$cf_cv_libtype $LIBS"
+
+ else
+ echo "$ac_t""no" 1>&6
+ fi
+
+-echo $ac_n "checking for menu_driver in -lmenu""... $ac_c" 1>&6
+-echo "configure:1280: checking for menu_driver in -lmenu" >&5
+-ac_lib_var=`echo menu'_'menu_driver | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6
++echo "configure:3242: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
++ac_lib_var=`echo menu$cf_cv_libtype'_'menu_driver | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ ac_save_LIBS="$LIBS"
+-LIBS="-lmenu $LIBS"
++LIBS="-lmenu$cf_cv_libtype $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 1288 "configure"
++#line 3250 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -1295,7 +3257,7 @@
+ menu_driver()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -1310,28 +3272,28 @@
+ fi
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- ac_tr_lib=HAVE_LIB`echo menu | sed -e 's/[^a-zA-Z0-9_]/_/g' \
++ ac_tr_lib=HAVE_LIB`echo menu$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ cat >> confdefs.h <<EOF
+ #define $ac_tr_lib 1
+ EOF
+
+- LIBS="-lmenu $LIBS"
++ LIBS="-lmenu$cf_cv_libtype $LIBS"
+
+ else
+ echo "$ac_t""no" 1>&6
+ fi
+
+-echo $ac_n "checking for new_panel in -lpanel""... $ac_c" 1>&6
+-echo "configure:1327: checking for new_panel in -lpanel" >&5
+-ac_lib_var=`echo panel'_'new_panel | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
++echo "configure:3289: checking for new_panel in -lpanel$cf_cv_libtype" >&5
++ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ ac_save_LIBS="$LIBS"
+-LIBS="-lpanel $LIBS"
++LIBS="-lpanel$cf_cv_libtype $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 1335 "configure"
++#line 3297 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -1342,7 +3304,7 @@
+ new_panel()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -1357,13 +3319,13 @@
+ fi
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+- ac_tr_lib=HAVE_LIB`echo panel | sed -e 's/[^a-zA-Z0-9_]/_/g' \
++ ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ cat >> confdefs.h <<EOF
+ #define $ac_tr_lib 1
+ EOF
+
+- LIBS="-lpanel $LIBS"
++ LIBS="-lpanel$cf_cv_libtype $LIBS"
+
+ else
+ echo "$ac_t""no" 1>&6
+@@ -1371,12 +3333,12 @@
+
+
+ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+-echo "configure:1375: checking return type of signal handlers" >&5
++echo "configure:3337: checking return type of signal handlers" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1380 "configure"
++#line 3342 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -1393,7 +3355,7 @@
+ int i;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_signal=void
+ else
+@@ -1412,93 +3374,13 @@
+
+
+
+-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1417: checking how to run the C preprocessor" >&5
+-# On Suns, sometimes $CPP names a directory.
+-if test -n "$CPP" && test -d "$CPP"; then
+- CPP=
+-fi
+-if test -z "$CPP"; then
+-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- # This must be in double quotes, not single quotes, because CPP may get
+- # substituted into the Makefile and "${CC-cc}" will confuse make.
+- CPP="${CC-cc} -E"
+- # On the NeXT, cc -E runs the code through the compiler's parser,
+- # not just through cpp.
+- cat > conftest.$ac_ext <<EOF
+-#line 1432 "configure"
+-#include "confdefs.h"
+-#include <assert.h>
+-Syntax Error
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1438: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+- :
+-else
+- echo "$ac_err" >&5
+- echo "configure: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- CPP="${CC-cc} -E -traditional-cpp"
+- cat > conftest.$ac_ext <<EOF
+-#line 1449 "configure"
+-#include "confdefs.h"
+-#include <assert.h>
+-Syntax Error
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+- :
+-else
+- echo "$ac_err" >&5
+- echo "configure: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- CPP="${CC-cc} -nologo -E"
+- cat > conftest.$ac_ext <<EOF
+-#line 1466 "configure"
+-#include "confdefs.h"
+-#include <assert.h>
+-Syntax Error
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+- :
+-else
+- echo "$ac_err" >&5
+- echo "configure: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- CPP=/lib/cpp
+-fi
+-rm -f conftest*
+-fi
+-rm -f conftest*
+-fi
+-rm -f conftest*
+- ac_cv_prog_CPP="$CPP"
+-fi
+- CPP="$ac_cv_prog_CPP"
+-else
+- ac_cv_prog_CPP="$CPP"
+-fi
+-echo "$ac_t""$CPP" 1>&6
+-
+ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+-echo "configure:1497: checking for ANSI C header files" >&5
++echo "configure:3379: checking for ANSI C header files" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1502 "configure"
++#line 3384 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -1506,7 +3388,7 @@
+ #include <float.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:3392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1523,7 +3405,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1527 "configure"
++#line 3409 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ EOF
+@@ -1541,7 +3423,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1545 "configure"
++#line 3427 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+@@ -1562,7 +3444,7 @@
+ :
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1566 "configure"
++#line 3448 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+@@ -1573,7 +3455,7 @@
+ exit (0); }
+
+ EOF
+-if { (eval echo configure:1577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:3459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ :
+ else
+@@ -1597,12 +3479,12 @@
+ fi
+
+ echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+-echo "configure:1601: checking whether time.h and sys/time.h may both be included" >&5
++echo "configure:3483: checking whether time.h and sys/time.h may both be included" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1606 "configure"
++#line 3488 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -1611,7 +3493,7 @@
+ struct tm *tp;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3497: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_header_time=yes
+ else
+@@ -1648,17 +3530,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:1652: checking for $ac_hdr" >&5
++echo "configure:3534: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1657 "configure"
++#line 3539 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:3544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1691,19 +3573,21 @@
+ napms \
+ resize_term \
+ resizeterm \
++slk_color \
+ strdup \
+ use_default_colors \
+ vsscanf \
++wchgat \
+ wresize \
+
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:1702: checking for $ac_func" >&5
++echo "configure:3586: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1707 "configure"
++#line 3591 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -1726,7 +3610,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -1751,8 +3635,85 @@
+ done
+
+
++cat > conftest.$ac_ext <<EOF
++#line 3640 "configure"
++#include "confdefs.h"
++
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++
++ (void) assume_default_colors (0, 0);
++ (void) curses_version ();
++ (void) define_key (0, 0);
++ (void) is_term_resized (0, 0);
++ (void) key_defined (0);
++ (void) keybound (0, 0);
++ (void) keyok (0, 0);
++ (void) resize_term (0, 0);
++ (void) resizeterm (0, 0);
++ (void) use_default_colors ();
++ (void) use_extended_names (0);
++ (void) wresize (0, 0, 0);
++
++; return 0; }
++EOF
++if { (eval echo configure:3661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ cat >> confdefs.h <<\EOF
++#define NCURSES_EXT_FUNCS 1
++EOF
++
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++fi
++rm -f conftest*
++
++
++echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
++echo "configure:3675: checking if sys/time.h works with sys/select.h" >&5
++if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++
++cat > conftest.$ac_ext <<EOF
++#line 3681 "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>
++#endif
++
++int main() {
++
++; return 0; }
++EOF
++if { (eval echo configure:3696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ cf_cv_sys_time_select=yes
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ cf_cv_sys_time_select=no
++fi
++rm -f conftest*
++
++fi
++
++echo "$ac_t""$cf_cv_sys_time_select" 1>&6
++test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF
++#define HAVE_SYS_TIME_SELECT 1
++EOF
++
++
++
+ echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
+-echo "configure:1756: checking for function curses_version" >&5
++echo "configure:3717: checking for function curses_version" >&5
+ if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1761,10 +3722,10 @@
+ cf_cv_func_curses_version=unknown
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1765 "configure"
++#line 3726 "configure"
+ #include "confdefs.h"
+
+-#include <curses.h>
++#include <${cf_cv_ncurses_header-curses.h}>
+ int main()
+ {
+ char temp[1024];
+@@ -1773,7 +3734,7 @@
+ }
+
+ EOF
+-if { (eval echo configure:1777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:3738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ cf_cv_func_curses_version=yes
+
+@@ -1796,8 +3757,9 @@
+ EOF
+
+
++
+ echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
+-echo "configure:1801: checking for alternate character set array" >&5
++echo "configure:3763: checking for alternate character set array" >&5
+ if eval "test \"`echo '$''{'cf_cv_curses_acs_map'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1806,10 +3768,10 @@
+ for name in acs_map _acs_map __acs_map _nc_acs_map
+ do
+ cat > conftest.$ac_ext <<EOF
+-#line 1810 "configure"
++#line 3772 "configure"
+ #include "confdefs.h"
+
+-#include <curses.h>
++#include <${cf_cv_ncurses_header-curses.h}>
+
+ int main() {
+
+@@ -1817,7 +3779,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ cf_cv_curses_acs_map=$name; break
+ else
+@@ -1836,69 +3798,60 @@
+ EOF
+
+
++
+ echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
+-echo "configure:1841: checking for wide alternate character set array" >&5
++echo "configure:3804: checking for wide alternate character set array" >&5
+ if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+
+-cf_cv_curses_wacs_map=unknown
+-for name in wacs_map _wacs_map __wacs_map _nc_wacs
+-do
+-cat > conftest.$ac_ext <<EOF
+-#line 1850 "configure"
++ cf_cv_curses_wacs_map=unknown
++ for name in wacs_map _wacs_map __wacs_map _nc_wacs
++ do
++ cat > conftest.$ac_ext <<EOF
++#line 3813 "configure"
+ #include "confdefs.h"
+
+ #ifndef _XOPEN_SOURCE_EXTENDED
+ #define _XOPEN_SOURCE_EXTENDED
+ #endif
+-#include <curses.h>
+-
++#include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+-
+-$name['k'] = *WACS_PLUS
+-
++$name['k'] = *WACS_PLUS
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+- cf_cv_curses_wacs_map=$name; break
++ cf_cv_curses_wacs_map=$name
++ break
+ else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest*
+-done
+-
++ done
+ fi
+
+ echo "$ac_t""$cf_cv_curses_wacs_map" 1>&6
+
+-test "$cf_cv_curses_wacs_map" != unknown && cat >> confdefs.h <<EOF
+-#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
+-EOF
+-
+-
+
+-
+-
+-echo $ac_n "checking for type attr_t in curses.h""... $ac_c" 1>&6
+-echo "configure:1887: checking for type attr_t in curses.h" >&5
++echo $ac_n "checking for type attr_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
++echo "configure:3840: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 1889 "configure"
++#line 3842 "configure"
+ #include "confdefs.h"
+
+ #ifndef _XOPEN_SOURCE_EXTENDED
+ #define _XOPEN_SOURCE_EXTENDED
+ #endif
+-#include <curses.h>
++#include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+
+ attr_t foo
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_result=yes
+ else
+@@ -1910,7 +3863,7 @@
+ rm -f conftest*
+ echo "$ac_t""$cf_result" 1>&6
+ if test $cf_result = yes ; then
+-
++
+ cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+ cat >> confdefs.h <<EOF
+@@ -1925,23 +3878,23 @@
+ fi
+
+
+-echo $ac_n "checking for type mbstate_t in curses.h""... $ac_c" 1>&6
+-echo "configure:1930: checking for type mbstate_t in curses.h" >&5
++echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
++echo "configure:3883: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 1932 "configure"
++#line 3885 "configure"
+ #include "confdefs.h"
+
+ #ifndef _XOPEN_SOURCE_EXTENDED
+ #define _XOPEN_SOURCE_EXTENDED
+ #endif
+-#include <curses.h>
++#include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+
+ mbstate_t foo
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_result=yes
+ else
+@@ -1953,7 +3906,7 @@
+ rm -f conftest*
+ echo "$ac_t""$cf_result" 1>&6
+ if test $cf_result = yes ; then
+-
++
+ cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+ cat >> confdefs.h <<EOF
+@@ -1969,48 +3922,6 @@
+
+
+
+-echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
+-echo "configure:1974: checking if sys/time.h works with sys/select.h" >&5
+-if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-
+-cat > conftest.$ac_ext <<EOF
+-#line 1980 "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>
+-#endif
+-
+-int main() {
+-
+-; return 0; }
+-EOF
+-if { (eval echo configure:1995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+- rm -rf conftest*
+- cf_cv_sys_time_select=yes
+-else
+- echo "configure: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- cf_cv_sys_time_select=no
+-fi
+-rm -f conftest*
+-
+-fi
+-
+-echo "$ac_t""$cf_cv_sys_time_select" 1>&6
+-test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF
+-#define HAVE_SYS_TIME_SELECT 1
+-EOF
+-
+-
+-
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+@@ -2101,7 +4012,7 @@
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+- echo "$CONFIG_STATUS generated by autoconf version 2.13.20000819"
++ echo "$CONFIG_STATUS generated by autoconf version 2.13.20020210"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+@@ -2143,7 +4054,13 @@
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
++s%@host@%$host%g
++s%@host_alias@%$host_alias%g
++s%@host_cpu@%$host_cpu%g
++s%@host_vendor@%$host_vendor%g
++s%@host_os@%$host_os%g
+ s%@CC@%$CC%g
++s%@CPP@%$CPP%g
+ s%@CC_G_OPT@%$CC_G_OPT%g
+ s%@CC_SHARED_OPTS@%$CC_SHARED_OPTS%g
+ s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
+@@ -2168,7 +4085,6 @@
+ s%@TEST_DEPS@%$TEST_DEPS%g
+ s%@cf_cv_abi_version@%$cf_cv_abi_version%g
+ s%@cf_cv_rel_version@%$cf_cv_rel_version%g
+-s%@CPP@%$CPP%g
+
+ CEOF
+ EOF
+@@ -2379,11 +4295,9 @@
+ # work consistently for different make-programs (the '\$(MODEL)/' confuses
+ # some, and the '\$x' confuses others).
+ TEST_EOF
+-LIST=`make echo_tests`
+-LAST=`make echo_suffix`
+-for n in $LIST
++LIST=`sed -e 's/[ ].*//' -e '/^[#@]/d' $srcdir/modules`
++for N in $LIST
+ do
+- N=`echo $n | sed -e s/${LAST}\$//`
+ cat >>Makefile <<TEST_EOF
+
+ \$(MODEL)/$N.o : $N.c \\
+diff -urNd -urNd ncurses-5.3/test/configure.in ncurses-5.3.20030906.orig/test/configure.in
+--- ncurses-5.3/test/configure.in Sat Sep 7 11:55:23 2002
++++ ncurses-5.3.20030906.orig/test/configure.in Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
++dnl Copyright (c) 1998-2002,2003 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.36 2002/09/07 16:55:23 tom Exp $
++dnl $Id: configure.in,v 1.43 2003/05/17 21:56:58 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,11 +38,16 @@
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20000819)
++AC_PREREQ(2.13.20020210)
+ AC_INIT(ncurses.c)
+ AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
+
++CF_INHERIT_SCRIPT(config.guess)
++CF_INHERIT_SCRIPT(config.sub)
++CF_CHECK_CACHE
++
+ AC_PROG_CC
++AC_PROG_CPP
+
+ dnl Things that we don't need (or must override) if we're not building ncurses
+ CC_G_OPT="-g" AC_SUBST(CC_G_OPT)
+@@ -71,6 +76,11 @@
+ cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version)
+ cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version)
+
++cf_cv_screen=curses
++cf_cv_libtype=
++
++CF_WITH_CURSES_DIR
++
+ dnl SunOS 4.x
+ AC_ARG_WITH(5lib,
+ [ --with-5lib use SunOS sysv-libraries],
+@@ -78,92 +88,44 @@
+ CPPFLAGS="$CPPFLAGS -I/usr/5include"])
+
+ dnl ---------------------------------------------------------------------------
+-dnl Check for libutf8
+-AC_DEFUN([CF_LIBUTF8],
+-[
+-AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
+- cf_save_LIBS="$LIBS"
+- LIBS="-lutf8 $LIBS"
+-AC_TRY_LINK([
+-#include <libutf8.h>],[putwc(0,0);],
+- [cf_cv_libutf8=yes],
+- [cf_cv_libutf8=no])
+- LIBS="$cf_save_LIBS"
+-])
+-
+-if test "$cf_cv_libutf8" = yes ; then
+- AC_DEFINE(HAVE_LIBUTF8_H)
+- LIBS="-lutf8 $LIBS"
+-fi
+-])dnl
+-
+-dnl ---------------------------------------------------------------------------
+ dnl NcursesW, installed in conventional location
+ AC_ARG_WITH(ncursesw,
+ [ --with-ncursesw use wide ncurses-libraries (installed)],
+- [
+- AC_DEFINE(_GNU_SOURCE)
+- AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
+- AC_CHECK_FUNC(initscr,,[
+- AC_CHECK_LIB(gpm,Gpm_Open)
+- LIB_NAME=ncursesw
+- AC_CHECK_FUNC(putwc,,[CF_LIBUTF8])
+- for p in $HOME /usr/local /usr
+- do
+- if test -f $p/include/ncursesw/curses.h
+- then
+- CPPFLAGS="$CPPFLAGS -I$p/include/ncursesw"
+- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
+- test $p != /usr && LIBS="-L$p/lib $LIBS"
+- break
+- elif test $p != /usr
+- then
+- if test -f $p/include/curses.h
+- then
+- CPPFLAGS="$CPPFLAGS -I$p/include"
+- LIBS="-L$p/lib $LIBS"
+- break
+- fi
+- fi
+- done
+- ],[test -d /usr/ccs/lib && LIBS="-L/usr/ccs/lib $LIBS"])])
++ [cf_cv_screen=ncursesw])
+
+ dnl Ncurses, installed in conventional location
+ AC_ARG_WITH(ncurses,
+ [ --with-ncurses use ncurses-libraries (installed)],
+- [AC_CHECK_FUNC(initscr,,[
+- AC_CHECK_LIB(gpm,Gpm_Open)
+- LIB_NAME=ncurses
+- for p in $HOME /usr/local /usr
+- do
+- if test -f $p/include/ncurses/curses.h
+- then
+- CPPFLAGS="$CPPFLAGS -I$p/include/ncurses"
+- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
+- test $p != /usr && LIBS="-L$p/lib $LIBS"
+- break
+- elif test $p != /usr
+- then
+- if test -f $p/include/curses.h
+- then
+- CPPFLAGS="$CPPFLAGS -I$p/include"
+- LIBS="-L$p/lib $LIBS"
+- break
+- fi
+- fi
+- done
+- ],[test -d /usr/ccs/lib && LIBS="-L/usr/ccs/lib $LIBS"])])
++ [cf_cv_screen=ncurses])
++
++case $cf_cv_screen in
++curses)
++ CF_CURSES_CPPFLAGS
++ CF_NCURSES_VERSION
++ CF_CURSES_LIBS
++ ;;
++ncurses)
++ CF_NCURSES_CPPFLAGS
++ CF_NCURSES_LIBS
++ LIB_NAME=ncurses
++ ;;
++ncursesw)
++ cf_cv_libtype=w
++ CF_UTF8_LIB
++ CF_NCURSES_CPPFLAGS(ncursesw)
++ CF_NCURSES_LIBS(ncursesw)
++ LIB_NAME=ncursesw
++ ;;
++esac
+
+ dnl If we've not specified a library, assume we're using sysvr4 libraries
+ dnl installed conventionally (e.g., SunOS 5.x - solaris).
+
+ dnl Autoconf builds up the $LIBS in reverse order
+
+-AC_CHECK_FUNC(initscr,,[
+-AC_CHECK_LIB($LIB_NAME,initscr)])
+-AC_CHECK_LIB(form,form_driver)
+-AC_CHECK_LIB(menu,menu_driver)
+-AC_CHECK_LIB(panel,new_panel)
++AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
++AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
++AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
+
+ AC_TYPE_SIGNAL
+
+@@ -190,117 +152,37 @@
+ napms \
+ resize_term \
+ resizeterm \
++slk_color \
+ strdup \
+ use_default_colors \
+ vsscanf \
++wchgat \
+ wresize \
+ )
+
+-dnl ---------------------------------------------------------------------------
+-dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
+-dnl It's a character string "SVR4", not documented.
+-AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
+-AC_TRY_RUN([
+-#include <curses.h>
+-int main()
+-{
+- char temp[1024];
+- sprintf(temp, "%s\n", curses_version());
+- exit(0);
+-}]
+-,[cf_cv_func_curses_version=yes]
+-,[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)
+-
+-dnl ---------------------------------------------------------------------------
+-dnl Check for likely values of acs_map[]:
+-AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
+-cf_cv_curses_acs_map=unknown
+-for name in acs_map _acs_map __acs_map _nc_acs_map
+-do
+ AC_TRY_LINK([
+-#include <curses.h>
+-],[
+-$name['k'] = ACS_PLUS
+-],[cf_cv_curses_acs_map=$name; break])
+-done
+-])
+-
+-test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
+-
+-dnl ---------------------------------------------------------------------------
+-dnl Check for likely values of wacs_map[]:
+-AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
+-cf_cv_curses_wacs_map=unknown
+-for name in wacs_map _wacs_map __wacs_map _nc_wacs
+-do
+-AC_TRY_LINK([
+-#ifndef _XOPEN_SOURCE_EXTENDED
+-#define _XOPEN_SOURCE_EXTENDED
+-#endif
+-#include <curses.h>
+-],[
+-$name['k'] = *WACS_PLUS
+-],[cf_cv_curses_wacs_map=$name; break])
+-done
+-])
+-
+-test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map)
+-
+-dnl ---------------------------------------------------------------------------
+-dnl Make an uppercase version of a variable
+-dnl $1=uppercase($2)
+-AC_DEFUN([CF_UPPER],
+-[
+-$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+-])dnl
+-
+-dnl ---------------------------------------------------------------------------
+-dnl Check if curses.h defines the given type
+-AC_DEFUN([CF_CURSES_TYPE],
++#include <${cf_cv_ncurses_header-curses.h}>],
+ [
+-AC_MSG_CHECKING(for type $1 in curses.h)
+-AC_TRY_COMPILE([
+-#ifndef _XOPEN_SOURCE_EXTENDED
+-#define _XOPEN_SOURCE_EXTENDED
+-#endif
+-#include <curses.h>],[
+-$1 foo
+-],cf_result=yes,cf_result=no)
+-AC_MSG_RESULT($cf_result)
+-if test $cf_result = yes ; then
+- CF_UPPER(cf_result,have_type_$1)
+- AC_DEFINE_UNQUOTED($cf_result)
+-else
+- AC_DEFINE_UNQUOTED($1,$2)
+-fi
+-])dnl
+-
+-CF_CURSES_TYPE(attr_t,long)
+-CF_CURSES_TYPE(mbstate_t,long)
+-
+-dnl ---------------------------------------------------------------------------
+-dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
+-dnl older SCO configurations.
+-dnl [CF_SYS_TIME_SELECT]
++ (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);
++ ],[AC_DEFINE(NCURSES_EXT_FUNCS)])
+
+-AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
+-AC_CACHE_VAL(cf_cv_sys_time_select,[
+-AC_TRY_COMPILE([
+-#include <sys/types.h>
+-#ifdef HAVE_SYS_TIME_H
+-#include <sys/time.h>
+-#endif
+-#ifdef HAVE_SYS_SELECT_H
+-#include <sys/select.h>
+-#endif
+-],[],[cf_cv_sys_time_select=yes],
+- [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)
++CF_SYS_TIME_SELECT
++CF_FUNC_CURSES_VERSION
++CF_CURSES_ACS_MAP
++CF_CURSES_WACS_MAP
++CF_CURSES_CHECK_TYPE(attr_t,long)
++CF_CURSES_CHECK_TYPE(mbstate_t,long)
+
+ dnl ---------------------------------------------------------------------------
+
+@@ -311,11 +193,9 @@
+ # work consistently for different make-programs (the '\$(MODEL)/' confuses
+ # some, and the '\$x' confuses others).
+ TEST_EOF
+-LIST=`make echo_tests`
+-LAST=`make echo_suffix`
+-for n in $LIST
++LIST=`sed -e 's/[[ ]].*//' -e '/^[[#@]]/d' $srcdir/modules`
++for N in $LIST
+ do
+- N=`echo $n | sed -e s/${LAST}\$//`
+ cat >>Makefile <<TEST_EOF
+
+ \$(MODEL)/$N.o : $N.c \\
+diff -urNd -urNd ncurses-5.3/test/demo_defkey.c ncurses-5.3.20030906.orig/test/demo_defkey.c
+--- ncurses-5.3/test/demo_defkey.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/demo_defkey.c Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,250 @@
++/*
++ * $Id: demo_defkey.c,v 1.11 2003/05/17 23:33:28 tom Exp $
++ *
++ * Demonstrate the define_key() function.
++ * Thomas Dickey - 2002/11/23
++ */
++
++#include <test.priv.h>
++
++#if defined(NCURSES_VERSION) && NCURSES_EXT_FUNCS
++
++#include <term.h>
++
++#define MY_LOGFILE "demo_defkey.log"
++
++/*
++ * Log the most recently-written line to our logfile
++ */
++static void
++log_last_line(WINDOW *win)
++{
++ FILE *fp;
++ int y, x, n;
++ char temp[256];
++
++ if ((fp = fopen(MY_LOGFILE, "a")) != 0) {
++ getyx(win, y, x);
++ wmove(win, y - 1, 0);
++ n = winnstr(win, temp, sizeof(temp));
++ while (n-- > 0) {
++ if (isspace(temp[n]))
++ temp[n] = '\0';
++ else
++ break;
++ }
++ wmove(win, y, x);
++ fprintf(fp, "%s\n", temp);
++ fclose(fp);
++ }
++}
++
++/*
++ * Convert a character to visible form.
++ */
++static char *
++visichar(int ch)
++{
++ static char temp[10];
++
++ ch = UChar(ch);
++ if (ch == '\\') {
++ strcpy(temp, "\\\\");
++ } else if (ch == '\033') {
++ strcpy(temp, "\\E");
++ } else if (ch < ' ') {
++ sprintf(temp, "\\%03o", ch);
++ } else if (ch >= 127) {
++ sprintf(temp, "\\%03o", ch);
++ } else {
++ sprintf(temp, "%c", ch);
++ }
++ return temp;
++}
++
++/*
++ * Convert a string to visible form.
++ */
++static char *
++visible(const char *string)
++{
++ char *result = 0;
++ unsigned need = 1;
++ int pass;
++ int n;
++
++ if (string != 0 && *string != '\0') {
++ for (pass = 0; pass < 2; ++pass) {
++ for (n = 0; string[n] != '\0'; ++n) {
++ char temp[80];
++ strcpy(temp, visichar(string[n]));
++ if (pass)
++ strcat(result, temp);
++ else
++ need += strlen(temp);
++ }
++ if (!pass)
++ result = calloc(need, 1);
++ }
++ } else {
++ result = calloc(1, 1);
++ }
++ return result;
++}
++
++static void
++really_define_key(WINDOW *win, const char *new_string, int code)
++{
++ int rc;
++ const char *code_name = keyname(code);
++ char *old_string;
++ char *vis_string = 0;
++ char temp[80];
++
++ if (code_name == 0) {
++ sprintf(temp, "Keycode %d", code);
++ code_name = temp;
++ }
++
++ if ((old_string = keybound(code, 0)) != 0) {
++ wprintw(win, "%s is %s\n",
++ code_name,
++ vis_string = visible(old_string));
++ } else {
++ wprintw(win, "%s is not bound\n",
++ code_name);
++ }
++ log_last_line(win);
++ if (vis_string != 0) {
++ free(vis_string);
++ vis_string = 0;
++ }
++
++ vis_string = visible(new_string);
++ if ((rc = key_defined(new_string)) > 0) {
++ wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc));
++ log_last_line(win);
++ } else if (new_string != 0 && rc < 0) {
++ wprintw(win, "%s conflicts with longer strings\n", vis_string);
++ log_last_line(win);
++ }
++ rc = define_key(new_string, code);
++ if (rc == ERR) {
++ wprintw(win, "%s unchanged\n", code_name);
++ log_last_line(win);
++ } else if (new_string != 0) {
++ wprintw(win, "%s is now bound to %s\n",
++ vis_string,
++ code_name);
++ log_last_line(win);
++ } else if (old_string != 0) {
++ wprintw(win, "%s deleted\n", code_name);
++ log_last_line(win);
++ }
++ if (vis_string != 0 && *vis_string != 0)
++ free(vis_string);
++ if (old_string != 0)
++ free(old_string);
++}
++
++static void
++duplicate(WINDOW *win, NCURSES_CONST char *name, int code)
++{
++ char *value = tigetstr(name);
++
++ if (value != 0) {
++ const char *prefix = 0;
++ char temp[BUFSIZ];
++
++ if (!strncmp(value, "\033[", 2)) {
++ prefix = "\033O";
++ } else if (!strncmp(value, "\033O", 2)) {
++ prefix = "\033[";
++ }
++ if (prefix != 0) {
++ sprintf(temp, "%s%s", prefix, value + 2);
++ really_define_key(win, temp, code);
++ }
++ }
++}
++
++static void
++redefine(WINDOW *win, char *string, int code)
++{
++ really_define_key(win, string, code);
++}
++
++static void
++remove_definition(WINDOW *win, int code)
++{
++ really_define_key(win, 0, code);
++}
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ char *fkeys[12];
++ int n;
++ int ch;
++ WINDOW *win;
++
++ unlink(MY_LOGFILE);
++
++ initscr();
++ (void) cbreak(); /* take input chars one at a time, no wait for \n */
++ (void) noecho(); /* don't echo input */
++
++ printw("This demo is best on xterm: it reverses the definitions for f1-f12,\n");
++ printw("adds duplicate definitions for cursor application and normal modes,\n");
++ printw("and removes any definitions for the mini keypad. Type any of those:\n");
++ refresh();
++
++ win = newwin(LINES - 3, COLS, 3, 0);
++ scrollok(win, TRUE);
++ keypad(win, TRUE);
++ wmove(win, 0, 0);
++
++ /* we do the define_key() calls after keypad(), since the first call to
++ * keypad() initializes the corresponding data.
++ */
++ for (n = 0; n < 12; ++n) {
++ char name[10];
++ sprintf(name, "kf%d", n + 1);
++ fkeys[n] = tigetstr(name);
++ }
++ for (n = 0; n < 12; ++n) {
++ redefine(win, fkeys[11 - n], KEY_F(n + 1));
++ }
++
++ duplicate(win, "kcub1", KEY_LEFT);
++ duplicate(win, "kcuu1", KEY_UP);
++ duplicate(win, "kcud1", KEY_DOWN);
++ duplicate(win, "kcuf1", KEY_RIGHT);
++
++ remove_definition(win, KEY_A1);
++ remove_definition(win, KEY_A3);
++ remove_definition(win, KEY_B2);
++ remove_definition(win, KEY_C1);
++ remove_definition(win, KEY_C3);
++
++ really_define_key(win, "\033O", 1023);
++
++ while ((ch = wgetch(win)) != ERR) {
++ const char *name = keyname(ch);
++ wprintw(win, "Keycode %d, name %s\n",
++ ch,
++ name != 0 ? name : "<null>");
++ log_last_line(win);
++ wclrtoeol(win);
++ }
++ endwin();
++ return EXIT_SUCCESS;
++}
++#else
++int
++main(void)
++{
++ printf("This program requires the ncurses library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif
+diff -urNd -urNd ncurses-5.3/test/demo_forms.c ncurses-5.3.20030906.orig/test/demo_forms.c
+--- ncurses-5.3/test/demo_forms.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/demo_forms.c Tue May 13 20:08:23 2003
+@@ -0,0 +1,295 @@
++/*
++ * $Id: demo_forms.c,v 1.3 2003/05/03 22:08:20 tom Exp $
++ *
++ * Demonstrate a variety of functions from the form library.
++ * Thomas Dickey - 2003/4/26
++ */
++/*
++TYPE_ALNUM -
++TYPE_ENUM -
++TYPE_INTEGER -
++TYPE_IPV4 -
++TYPE_NUMERIC -
++TYPE_REGEXP -
++data_ahead -
++data_behind -
++dup_field -
++dynamic_field_info -
++field_arg -
++field_back -
++field_count -
++field_fore -
++field_init -
++field_just -
++field_opts_on -
++field_pad -
++field_status -
++field_term -
++field_type -
++form_init -
++form_opts -
++form_opts_off -
++form_opts_on -
++form_page -
++form_request_by_name -
++form_term -
++form_userptr -
++free_fieldtype -
++link_field -
++link_fieldtype -
++move_field -
++new_page -
++pos_form_cursor -
++set_current_field -
++set_field_fore -
++set_field_init -
++set_field_pad -
++set_field_status -
++set_field_term -
++set_fieldtype_arg -
++set_fieldtype_choice -
++set_form_fields -
++set_form_init -
++set_form_opts -
++set_form_page -
++set_form_term -
++set_form_userptr -
++set_max_field -
++*/
++
++#include <test.priv.h>
++
++#if USE_LIBFORM
++
++#include <edit_field.h>
++
++static FIELD *
++make_label(int frow, int fcol, NCURSES_CONST char *label)
++{
++ FIELD *f = new_field(1, strlen(label), frow, fcol, 0, 0);
++
++ if (f) {
++ set_field_buffer(f, 0, label);
++ set_field_opts(f, field_opts(f) & ~O_ACTIVE);
++ }
++ return (f);
++}
++
++/*
++ * Define each field with an extra one, for reflecting "actual" text.
++ */
++static FIELD *
++make_field(int frow, int fcol, int rows, int cols)
++{
++ FIELD *f = new_field(rows, cols, frow, fcol, 0, 1);
++
++ if (f) {
++ set_field_back(f, A_UNDERLINE);
++ set_field_userptr(f, (void *) 0);
++ }
++ return (f);
++}
++
++static void
++display_form(FORM * f)
++{
++ WINDOW *w;
++ int rows, cols;
++
++ scale_form(f, &rows, &cols);
++
++ /*
++ * Put the form at the upper-left corner of the display, with just a box
++ * around it.
++ */
++ if ((w = newwin(rows + 2, cols + 4, 0, 0)) != (WINDOW *) 0) {
++ set_form_win(f, w);
++ 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);
++}
++
++static void
++erase_form(FORM * f)
++{
++ WINDOW *w = form_win(f);
++ WINDOW *s = form_sub(f);
++
++ unpost_form(f);
++ werase(w);
++ wrefresh(w);
++ delwin(s);
++ delwin(w);
++}
++
++static int
++my_form_driver(FORM * form, int c)
++{
++ switch (c) {
++ case EDIT_FIELD('q'):
++ if (form_driver(form, REQ_VALIDATION) == E_OK)
++ return (TRUE);
++ break;
++ case EDIT_FIELD('h'):
++ help_edit_field();
++ break;
++ default:
++ beep();
++ break;
++ }
++ return (FALSE);
++}
++
++static void
++show_current_field(WINDOW *win, FORM * form)
++{
++ FIELD *field;
++ FIELDTYPE *type;
++ char *buffer;
++ int nbuf;
++
++ if (has_colors()) {
++ wbkgd(win, COLOR_PAIR(1));
++ }
++ werase(win);
++ wprintw(win, "Cursor: %d,%d\n", form->currow, form->curcol);
++ if ((field = current_field(form)) != 0) {
++ wprintw(win, "Field %d:", field_index(field));
++ if ((type = field_type(field)) != 0) {
++ if (type == TYPE_ALNUM)
++ waddstr(win, "ALNUM");
++ else if (type == TYPE_ALPHA)
++ waddstr(win, "ALPHA");
++ else if (type == TYPE_ENUM)
++ waddstr(win, "ENUM");
++ else if (type == TYPE_INTEGER)
++ waddstr(win, "INTEGER");
++ else if (type == TYPE_NUMERIC)
++ waddstr(win, "NUMERIC");
++ else if (type == TYPE_REGEXP)
++ waddstr(win, "REGEXP");
++ else
++ waddstr(win, "other");
++ }
++ waddstr(win, "\n");
++ for (nbuf = 0; nbuf <= 2; ++nbuf) {
++ if ((buffer = field_buffer(field, nbuf)) != 0) {
++ wprintw(win, "buffer %d:", nbuf);
++ wattrset(win, A_REVERSE);
++ waddstr(win, buffer);
++ wattroff(win, A_REVERSE);
++ waddstr(win, "\n");
++ }
++ }
++ }
++ wrefresh(win);
++}
++
++static void
++demo_forms(void)
++{
++ WINDOW *w;
++ FORM *form;
++ FIELD *f[100];
++ int finished = 0, c;
++ unsigned n = 0;
++ int pg;
++ WINDOW *also;
++
++ help_edit_field();
++
++ mvaddstr(4, 57, "Forms Entry Test");
++
++ refresh();
++
++ /* describe the form */
++ for (pg = 0; pg < 3; ++pg) {
++ char label[80];
++ sprintf(label, "Sample Form Page %d", pg + 1);
++ f[n++] = make_label(0, 15, label);
++ set_new_page(f[n - 1], TRUE);
++
++ f[n++] = make_label(2, 0, "Last Name");
++ f[n++] = make_field(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);
++ 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);
++ set_field_type(f[n - 1], TYPE_ALPHA, 1);
++
++ f[n++] = make_label(5, 0, "Comments");
++ f[n++] = make_field(6, 0, 4, 46);
++ }
++
++ f[n++] = (FIELD *) 0;
++
++ form = new_form(f);
++
++ display_form(form);
++
++ w = form_win(form);
++ also = newwin(getmaxy(stdscr) - getmaxy(w), COLS, getmaxy(w), 0);
++ show_current_field(also, form);
++
++ while (!finished) {
++ switch (edit_field(form, &c)) {
++ case E_OK:
++ break;
++ case E_UNKNOWN_COMMAND:
++ finished = my_form_driver(form, c);
++ break;
++ default:
++ beep();
++ break;
++ }
++ show_current_field(also, form);
++ }
++
++ erase_form(form);
++
++ free_form(form);
++ for (c = 0; f[c] != 0; c++)
++ free_field(f[c]);
++ noraw();
++ nl();
++}
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ initscr();
++ cbreak();
++ noecho();
++ raw();
++ nonl(); /* lets us read ^M's */
++ intrflush(stdscr, FALSE);
++ keypad(stdscr, TRUE);
++
++ if (has_colors()) {
++ start_color();
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ bkgd(COLOR_PAIR(1));
++ refresh();
++ }
++
++ demo_forms();
++
++ endwin();
++ return EXIT_SUCCESS;
++}
++#else
++int
++main(void)
++{
++ printf("This program requires the curses form library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif
+diff -urNd -urNd ncurses-5.3/test/demo_keyok.c ncurses-5.3.20030906.orig/test/demo_keyok.c
+--- ncurses-5.3/test/demo_keyok.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/demo_keyok.c Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,55 @@
++/*
++ * $Id: demo_keyok.c,v 1.3 2003/05/17 23:18:34 tom Exp $
++ *
++ * Demonstrate the keyok() function.
++ * Thomas Dickey - 2002/11/23
++ */
++
++#include <test.priv.h>
++
++#if defined(NCURSES_VERSION) && NCURSES_EXT_FUNCS
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ int lastch = ERR;
++ int ch;
++ WINDOW *win;
++
++ initscr();
++ (void) cbreak(); /* take input chars one at a time, no wait for \n */
++ (void) noecho(); /* don't echo input */
++
++ printw("Typing any function key will disable it, but typing it twice in\n");
++ printw("a row will turn it back on (just for a demo).");
++ refresh();
++
++ win = newwin(LINES - 2, COLS, 2, 0);
++ scrollok(win, TRUE);
++ keypad(win, TRUE);
++ wmove(win, 0, 0);
++
++ while ((ch = wgetch(win)) != ERR) {
++ const char *name = keyname(ch);
++ wprintw(win, "Keycode %d, name %s\n",
++ ch,
++ name != 0 ? name : "<null>");
++ wclrtoeol(win);
++ wrefresh(win);
++ if (ch >= KEY_MIN) {
++ keyok(ch, FALSE);
++ lastch = ch;
++ } else if (lastch >= KEY_MIN) {
++ keyok(lastch, TRUE);
++ }
++ }
++ endwin();
++ return EXIT_SUCCESS;
++}
++#else
++int
++main(void)
++{
++ printf("This program requires the ncurses library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif
+diff -urNd -urNd ncurses-5.3/test/demo_menus.c ncurses-5.3.20030906.orig/test/demo_menus.c
+--- ncurses-5.3/test/demo_menus.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/demo_menus.c Tue May 13 20:08:23 2003
+@@ -0,0 +1,73 @@
++/*
++ * $Id: demo_menus.c,v 1.1 2003/04/26 22:10:43 tom Exp $
++ *
++ * Demonstrate a variety of functions from the menu library.
++ * Thomas Dickey - 2003/4/26
++ */
++/*
++item_count -
++item_description -
++item_init -
++item_opts -
++item_opts_off -
++item_opts_on -
++item_term -
++item_userptr -
++item_visible -
++menu_back -
++menu_fore -
++menu_format -
++menu_grey -
++menu_init -
++menu_mark -
++menu_opts -
++menu_opts_on -
++menu_pad -
++menu_pattern -
++menu_request_by_name -
++menu_request_name -
++menu_spacing -
++menu_sub -
++menu_term -
++menu_userptr -
++set_current_item -
++set_item_init -
++set_item_opts -
++set_item_term -
++set_item_userptr -
++set_menu_back -
++set_menu_fore -
++set_menu_grey -
++set_menu_init -
++set_menu_items -
++set_menu_mark -
++set_menu_opts -
++set_menu_pad -
++set_menu_pattern -
++set_menu_spacing -
++set_menu_term -
++set_menu_userptr -
++set_top_row -
++top_row -
++*/
++
++#include <test.priv.h>
++
++#if USE_LIBMENU
++
++#include <menu.h>
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ printf("Not implemented - demo for menu library\n");
++ return EXIT_SUCCESS;
++}
++#else
++int
++main(void)
++{
++ printf("This program requires the curses menu library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif
+diff -urNd -urNd ncurses-5.3/test/demo_panels.c ncurses-5.3.20030906.orig/test/demo_panels.c
+--- ncurses-5.3/test/demo_panels.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/demo_panels.c Tue May 13 20:08:23 2003
+@@ -0,0 +1,33 @@
++/*
++ * $Id: demo_panels.c,v 1.1 2003/04/26 22:11:23 tom Exp $
++ *
++ * Demonstrate a variety of functions from the panel library.
++ * Thomas Dickey - 2003/4/26
++ */
++/*
++panel_above -
++panel_below -
++panel_hidden -
++replace_panel -
++*/
++
++#include <test.priv.h>
++
++#if USE_LIBPANEL
++
++#include <panel.h>
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ printf("Not implemented - demo for panel library\n");
++ return EXIT_SUCCESS;
++}
++#else
++int
++main(void)
++{
++ printf("This program requires the curses panel library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif
+diff -urNd -urNd ncurses-5.3/test/edit_field.c ncurses-5.3.20030906.orig/test/edit_field.c
+--- ncurses-5.3/test/edit_field.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/edit_field.c Sun Jul 20 14:02:08 2003
+@@ -0,0 +1,402 @@
++/*
++ * $Id: edit_field.c,v 1.7 2003/05/17 23:16:13 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).
++ *
++ * Thomas Dickey - 2003/4/26.
++ */
++
++#include <test.priv.h>
++
++#if USE_LIBFORM
++
++#include <edit_field.h>
++
++#define MY_QUIT EDIT_FIELD('q')
++#define MY_INS_MODE EDIT_FIELD('t')
++
++static struct {
++ int code;
++ int result;
++ const char *help;
++} commands[] = {
++
++ {
++ CTRL('A'), REQ_NEXT_CHOICE, ""
++ },
++ {
++ CTRL('B'), REQ_PREV_WORD, "go to previous word"
++ },
++ {
++ CTRL('C'), REQ_CLR_EOL, "clear to end of line"
++ },
++ {
++ CTRL('D'), REQ_DOWN_FIELD, "move downward to field"
++ },
++ {
++ CTRL('E'), REQ_END_FIELD, "go to end of field"
++ },
++ {
++ CTRL('F'), REQ_NEXT_PAGE, "go to next page"
++ },
++ {
++ CTRL('G'), REQ_DEL_WORD, "delete current word"
++ },
++ {
++ CTRL('H'), REQ_DEL_PREV, "delete previous character"
++ },
++ {
++ CTRL('I'), REQ_INS_CHAR, "insert character"
++ },
++ {
++ CTRL('K'), REQ_CLR_EOF, "clear to end of field"
++ },
++ {
++ CTRL('L'), REQ_LEFT_FIELD, "go to field to left"
++ },
++ {
++ CTRL('M'), REQ_NEW_LINE, "insert/overlay new line"
++ },
++ {
++ CTRL('N'), REQ_NEXT_FIELD, "go to next field"
++ },
++ {
++ CTRL('O'), REQ_INS_LINE, "insert blank line at cursor"
++ },
++ {
++ CTRL('P'), REQ_PREV_FIELD, "go to previous field"
++ },
++ {
++ CTRL('Q'), MY_QUIT, "exit form"
++ },
++ {
++ CTRL('R'), REQ_RIGHT_FIELD, "go to field to right"
++ },
++ {
++ CTRL('S'), REQ_BEG_FIELD, "go to beginning of field"
++ },
++ {
++ CTRL('U'), REQ_UP_FIELD, "move upward to field"
++ },
++ {
++ CTRL('V'), REQ_DEL_CHAR, "delete character"
++ },
++ {
++ CTRL('W'), REQ_NEXT_WORD, "go to next word"
++ },
++ {
++ CTRL('X'), REQ_CLR_FIELD, "clear field"
++ },
++ {
++ CTRL('Y'), REQ_DEL_LINE, "delete line"
++ },
++ {
++ CTRL('Z'), REQ_PREV_CHOICE, ""
++ },
++ {
++ CTRL('['), MY_QUIT, "exit form"
++ },
++ {
++ CTRL(']'), MY_INS_MODE, "toggle REQ_INS_MODE/REQ_OVL_MODE",
++ },
++ {
++ KEY_F(1), EDIT_FIELD('h'), "show this screen",
++ },
++ {
++ KEY_BACKSPACE, REQ_DEL_PREV, "delete previous character"
++ },
++ {
++ KEY_DOWN, REQ_DOWN_CHAR, "move down 1 character"
++ },
++ {
++ KEY_END, REQ_LAST_FIELD, "go to last field"
++ },
++ {
++ KEY_HOME, REQ_FIRST_FIELD, "go to first field"
++ },
++ {
++ KEY_LEFT, REQ_LEFT_CHAR, "move left 1 character"
++ },
++ {
++ KEY_LL, REQ_LAST_FIELD, "go to last field"
++ },
++ {
++ KEY_NEXT, REQ_NEXT_FIELD, "go to next field"
++ },
++ {
++ KEY_NPAGE, REQ_NEXT_PAGE, "go to next page"
++ },
++ {
++ KEY_PPAGE, REQ_PREV_PAGE, "go to previous page"
++ },
++ {
++ KEY_PREVIOUS, REQ_PREV_FIELD, "go to previous field"
++ },
++ {
++ KEY_RIGHT, REQ_RIGHT_CHAR, "move right 1 character"
++ },
++ {
++ KEY_UP, REQ_UP_CHAR, "move up 1 character"
++ }
++};
++
++static WINDOW *old_window;
++
++static void
++begin_popup(void)
++{
++ doupdate();
++ old_window = dupwin(curscr);
++}
++
++static void
++end_popup(void)
++{
++ touchwin(old_window);
++ wnoutrefresh(old_window);
++ doupdate();
++ delwin(old_window);
++}
++
++/*
++ * Display a temporary window listing the keystroke-commands we recognize.
++ */
++void
++help_edit_field(void)
++{
++ int x0 = 4;
++ int y0 = 2;
++ int y1 = 0;
++ int y2 = 0;
++ int wide = COLS - ((x0 + 1) * 2);
++ int high = LINES - ((y0 + 1) * 2);
++ WINDOW *help = newwin(high, wide, y0, x0);
++ WINDOW *data = newpad(2 + SIZEOF(commands), wide - 4);
++ unsigned n;
++ int ch = ERR;
++
++ begin_popup();
++
++ keypad(help, TRUE);
++ keypad(data, TRUE);
++ waddstr(data, "Defined form-traversal keys:\n");
++ for (n = 0; n < SIZEOF(commands); ++n) {
++ const char *name;
++#ifdef NCURSES_VERSION
++ if ((name = form_request_name(commands[n].result)) == 0)
++#endif
++ name = commands[n].help;
++ wprintw(data, "%s -- %s\n",
++ keyname(commands[n].code),
++ name != 0 ? name : commands[n].help);
++ }
++ waddstr(data, "Arrow keys move within a field as you would expect.");
++ y2 = getcury(data);
++
++ do {
++ switch (ch) {
++ case CTRL('P'):
++ case KEY_UP:
++ if (y1 > 0)
++ --y1;
++ else
++ beep();
++ break;
++ case CTRL('N'):
++ case KEY_DOWN:
++ if (y1 < y2)
++ ++y1;
++ else
++ beep();
++ break;
++ default:
++ beep();
++ break;
++ case ERR:
++ break;
++ }
++ werase(help);
++ box(help, 0, 0);
++ wnoutrefresh(help);
++ pnoutrefresh(data, y1, 0, y0 + 1, x0 + 1, high, wide);
++ doupdate();
++ } while ((ch = wgetch(data)) != ERR && ch != QUIT && ch != ESCAPE);
++ werase(help);
++ wrefresh(help);
++ delwin(help);
++ delwin(data);
++
++ end_popup();
++}
++
++static int
++offset_in_field(FORM * form)
++{
++ FIELD *field = current_field(form);
++ return form->curcol + form->currow * field->dcols;
++}
++
++int
++edit_field(FORM * form, int *result)
++{
++ int ch = wgetch(form_win(form));
++ int status;
++ FIELD *before;
++ FIELD *after;
++ unsigned n;
++ char lengths[80];
++ int length;
++ char *buffer;
++ int before_row = form->currow;
++ int before_col = form->curcol;
++ int before_off = offset_in_field(form);
++
++ before = current_field(form);
++ set_field_back(before, A_NORMAL);
++ if (ch <= KEY_MAX) {
++ set_field_back(before, A_REVERSE);
++ } else if (ch <= MAX_FORM_COMMAND) {
++ set_field_back(before, A_UNDERLINE);
++ }
++
++ *result = ch;
++ for (n = 0; n < SIZEOF(commands); ++n) {
++ if (commands[n].code == ch) {
++ *result = commands[n].result;
++ break;
++ }
++ }
++
++ status = form_driver(form, *result);
++
++ if (status == E_OK) {
++ bool modified = TRUE;
++
++ length = 0;
++ if ((buffer = field_buffer(before, 1)) != 0)
++ length = atoi(buffer);
++ if (length < before_off)
++ length = before_off;
++ switch (*result) {
++ case REQ_CLR_EOF:
++ length = before_off;
++ break;
++ case REQ_CLR_EOL:
++ if (before_row + 1 == before->rows)
++ length = before_off;
++ break;
++ case REQ_CLR_FIELD:
++ length = 0;
++ break;
++ case REQ_DEL_CHAR:
++ if (length > before_off)
++ --length;
++ break;
++ case REQ_DEL_PREV:
++ if (length > 0) {
++ if (before_col > 0) {
++ --length;
++ } else if (before_row > 0) {
++ length -= before->cols + before_col;
++ }
++ }
++ break;
++ case REQ_NEW_LINE:
++ length += before->cols;
++ break;
++#if 0
++ /* FIXME: finish these */
++ case REQ_DEL_LINE: /* delete line */
++ case REQ_DEL_WORD: /* delete word at cursor */
++ case REQ_INS_CHAR: /* insert blank char at cursor */
++ case REQ_INS_LINE: /* insert blank line at cursor */
++ case REQ_INS_MODE: /* begin insert mode */
++ case REQ_OVL_MODE: /* begin overlay mode */
++#endif
++ /* ignore all of the motion commands */
++ case REQ_SCR_BCHAR: /* FALLTHRU */
++ case REQ_SCR_BHPAGE: /* FALLTHRU */
++ case REQ_SCR_BLINE: /* FALLTHRU */
++ case REQ_SCR_BPAGE: /* FALLTHRU */
++ case REQ_SCR_FCHAR: /* FALLTHRU */
++ case REQ_SCR_FHPAGE: /* FALLTHRU */
++ case REQ_SCR_FLINE: /* FALLTHRU */
++ case REQ_SCR_FPAGE: /* FALLTHRU */
++ case REQ_SCR_HBHALF: /* FALLTHRU */
++ case REQ_SCR_HBLINE: /* FALLTHRU */
++ case REQ_SCR_HFHALF: /* FALLTHRU */
++ case REQ_SCR_HFLINE: /* FALLTHRU */
++ case REQ_BEG_FIELD: /* FALLTHRU */
++ case REQ_BEG_LINE: /* FALLTHRU */
++ case REQ_DOWN_CHAR: /* FALLTHRU */
++ case REQ_DOWN_FIELD: /* FALLTHRU */
++ case REQ_END_FIELD: /* FALLTHRU */
++ case REQ_END_LINE: /* FALLTHRU */
++ case REQ_FIRST_FIELD: /* FALLTHRU */
++ case REQ_FIRST_PAGE: /* FALLTHRU */
++ case REQ_LAST_FIELD: /* FALLTHRU */
++ case REQ_LAST_PAGE: /* FALLTHRU */
++ case REQ_LEFT_CHAR: /* FALLTHRU */
++ case REQ_LEFT_FIELD: /* FALLTHRU */
++ case REQ_NEXT_CHAR: /* FALLTHRU */
++ case REQ_NEXT_CHOICE: /* FALLTHRU */
++ case REQ_NEXT_FIELD: /* FALLTHRU */
++ case REQ_NEXT_LINE: /* FALLTHRU */
++ case REQ_NEXT_PAGE: /* FALLTHRU */
++ case REQ_NEXT_WORD: /* FALLTHRU */
++ case REQ_PREV_CHAR: /* FALLTHRU */
++ case REQ_PREV_CHOICE: /* FALLTHRU */
++ case REQ_PREV_FIELD: /* FALLTHRU */
++ case REQ_PREV_LINE: /* FALLTHRU */
++ case REQ_PREV_PAGE: /* FALLTHRU */
++ case REQ_PREV_WORD: /* FALLTHRU */
++ case REQ_RIGHT_CHAR: /* FALLTHRU */
++ case REQ_RIGHT_FIELD: /* FALLTHRU */
++ case REQ_SFIRST_FIELD: /* FALLTHRU */
++ case REQ_SLAST_FIELD: /* FALLTHRU */
++ case REQ_SNEXT_FIELD: /* FALLTHRU */
++ case REQ_SPREV_FIELD: /* FALLTHRU */
++ case REQ_UP_CHAR: /* FALLTHRU */
++ case REQ_UP_FIELD: /* FALLTHRU */
++ case REQ_VALIDATION: /* FALLTHRU */
++ modified = FALSE;
++ break;
++
++ default:
++ modified = FALSE;
++ if (ch >= MIN_FORM_COMMAND) {
++ beep();
++ } else if (isprint(ch)) {
++ modified = TRUE;
++ }
++ break;
++ }
++
++ /*
++ * If we do not force a re-validation, then field_buffer 0 will
++ * be lagging by one character.
++ */
++ if (modified && form_driver(form, REQ_VALIDATION) == E_OK && *result
++ < MIN_FORM_COMMAND)
++ ++length;
++
++ sprintf(lengths, "%d", length);
++ set_field_buffer(before, 1, lengths);
++ }
++
++ if ((after = current_field(form)) != before)
++ set_field_back(before, A_UNDERLINE);
++ return status;
++}
++#else
++
++extern void no_edit_field(void);
++
++void
++no_edit_field(void)
++{
++}
++
++#endif
+diff -urNd -urNd ncurses-5.3/test/edit_field.h ncurses-5.3.20030906.orig/test/edit_field.h
+--- ncurses-5.3/test/edit_field.h Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/edit_field.h Tue May 13 20:08:23 2003
+@@ -0,0 +1,17 @@
++/*
++ * $Id: edit_field.h,v 1.1 2003/04/26 22:54:50 tom Exp $
++ *
++ * Interface of edit_field.c
++ */
++
++#ifndef EDIT_FORM_H_incl
++#define EDIT_FORM_H_incl 1
++
++#include <form.h>
++
++#define EDIT_FIELD(c) (MAX_FORM_COMMAND + c)
++
++extern void help_edit_field(void);
++extern int edit_field(FORM * form, int *result);
++
++#endif /* EDIT_FORM_H_incl */
+diff -urNd -urNd ncurses-5.3/test/gdc.6 ncurses-5.3.20030906.orig/test/gdc.6
+--- ncurses-5.3/test/gdc.6 Wed Dec 7 00:29:08 1994
++++ ncurses-5.3.20030906.orig/test/gdc.6 Tue May 13 20:08:23 2003
+@@ -1,3 +1,4 @@
++.\" $Id: gdc.6,v 1.2 2003/03/15 20:50:03 tom Exp $
+ .TH GDC 6
+ .SH NAME
+ gdc \- grand digital clock (curses)
+@@ -16,7 +17,7 @@
+ seconds (default never).
+ The optional
+ .B -s
+-flag makes digits scroll as they change. In this curses mode implementation,
++flag makes digits scroll as they change. In some curses mode implementations,
+ the scrolling option has trouble keeping up.
+ .SH AUTHOR
+ Amos Shapir, modified for curses by John Lupien.
+diff -urNd -urNd ncurses-5.3/test/hashtest.c ncurses-5.3.20030906.orig/test/hashtest.c
+--- ncurses-5.3/test/hashtest.c Sat Jun 29 18:32:18 2002
++++ ncurses-5.3.20030906.orig/test/hashtest.c Tue May 13 20:08:23 2003
+@@ -3,7 +3,7 @@
+ *
+ * Generate timing statistics for vertical-motion optimization.
+ *
+- * $Id: hashtest.c,v 1.22 2002/06/29 23:32:18 tom Exp $
++ * $Id: hashtest.c,v 1.23 2002/10/19 22:11:24 tom Exp $
+ */
+
+ #ifdef TRACE
+@@ -14,8 +14,6 @@
+ #define USE_TRACE 0
+ #endif
+
+-#include <ctype.h>
+-
+ #include <test.priv.h>
+
+ #define LO_CHAR ' '
+diff -urNd -urNd ncurses-5.3/test/ins_wide.c ncurses-5.3.20030906.orig/test/ins_wide.c
+--- ncurses-5.3/test/ins_wide.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/ins_wide.c Fri Sep 12 16:41:56 2003
+@@ -0,0 +1,218 @@
++/*
++ * $Id: ins_wide.c,v 1.3 2003/08/09 22:07:23 tom Exp $
++ *
++ * Demonstrate the wins_wstr() and wins_wch functions.
++ * Thomas Dickey - 2002/11/23
++ *
++ * Note: to provide inputs for *ins_wch(), we use setcchar(). A quirk of the
++ * X/Open definition for that function is that the string contains no
++ * characters with negative width. Any control character (such as tab) falls
++ * into that category. So it follows that *ins_wch() cannot render a tab
++ * character because there is no legal way to construct a cchar_t containing
++ * one. X/Open does not document this, and it would be logical to assume that
++ * *ins_wstr() has the same limitation, but it uses a wchar_t string directly,
++ * and does not document how tabs are handled.
++ */
++
++#include <test.priv.h>
++
++#define TABSIZE 8
++
++#if USE_WIDEC_SUPPORT
++static int margin = (2 * TABSIZE) - 1;
++
++static void
++legend(WINDOW *win, wchar_t * buffer, int length)
++{
++ wmove(win, 0, 0);
++ wprintw(win,
++ "The Strings/Chars displays should match. Enter any characters.\n");
++ wprintw(win,
++ "Use down-arrow or ^N to repeat on the next line, 'q' to exit.\n");
++ wclrtoeol(win);
++ wprintw(win, "Inserted %d characters <", length);
++ waddwstr(win, buffer);
++ waddstr(win, ">");
++}
++
++static int
++ColOf(wchar_t * buffer, int length)
++{
++ int n;
++ int result;
++
++ for (n = 0, result = margin + 1; n < length; ++n) {
++ int ch = buffer[n];
++ switch (ch) {
++ case '\n':
++ /* actually newline should clear the remainder of the line
++ * and move to the next line - but that seems a little awkward
++ * in this example.
++ */
++ case '\r':
++ result = 0;
++ break;
++ case '\b':
++ if (result > 0)
++ --result;
++ break;
++ case '\t':
++ result += (TABSIZE - (result % TABSIZE));
++ break;
++ case '\177':
++ result += 2;
++ break;
++ default:
++ ++result;
++ if (ch < 32)
++ ++result;
++ break;
++ }
++ }
++ return result;
++}
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ cchar_t tmp_cchar;
++ wchar_t tmp_wchar[2];
++ wint_t ch;
++ int code;
++ int limit;
++ int row = 1;
++ int col;
++ int length;
++ wchar_t buffer[BUFSIZ];
++ WINDOW *work;
++ WINDOW *show;
++
++ putenv("TABSIZE=8");
++ initscr();
++ (void) cbreak(); /* take input chars one at a time, no wait for \n */
++ (void) noecho(); /* don't echo input */
++ keypad(stdscr, TRUE);
++
++ limit = LINES - 5;
++ work = newwin(limit, COLS, 0, 0);
++ show = newwin(4, COLS, limit + 1, 0);
++ keypad(work, TRUE);
++
++ for (col = margin + 1; col < COLS; col += TABSIZE)
++ mvwvline(work, row, col, '.', limit - 2);
++
++ box(work, 0, 0);
++ mvwvline(work, row, margin, ACS_VLINE, limit - 2);
++ mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
++ limit /= 2;
++
++ mvwaddstr(work, 1, 2, "String");
++ mvwaddstr(work, limit + 1, 2, "Chars");
++ wnoutrefresh(work);
++
++ buffer[length = 0] = '\0';
++ legend(show, buffer, length);
++ wnoutrefresh(show);
++
++ 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) | ' ');
++ }
++
++ while ((code = wget_wch(work, &ch)) != ERR) {
++
++ switch (code) {
++ case KEY_CODE_YES:
++ switch (ch) {
++ case KEY_DOWN:
++ ch = CTRL('N');
++ break;
++ case KEY_BACKSPACE:
++ ch = '\b';
++ break;
++ default:
++ beep();
++ continue;
++ }
++ break;
++ }
++ if (ch == 'q')
++ break;
++
++ wmove(work, row, margin + 1);
++ if (ch == CTRL('N')) {
++ if (row < limit) {
++ ++row;
++ /* put the whole string in, all at once */
++ mvwins_wstr(work, row, margin + 1, buffer);
++
++ /* do the corresponding single-character insertion */
++ for (col = 0; col < length; ++col) {
++ memset(&tmp_cchar, 0, sizeof(tmp_cchar));
++ if (setcchar(&tmp_cchar,
++ &(buffer[col]),
++ A_NORMAL,
++ 0,
++ (void *) 0) != ERR) {
++ mvwins_wch(work, limit + row, ColOf(buffer, col), &tmp_cchar);
++ } else {
++ beep(); /* even for tabs! */
++ mvwinsch(work,
++ limit + row,
++ ColOf(buffer, col), buffer[col]);
++ }
++ }
++ } else {
++ beep();
++ }
++ } else {
++ buffer[length++] = ch;
++ buffer[length] = '\0';
++ /* put the string in, one character at a time */
++ mvwins_wstr(work,
++ row,
++ ColOf(buffer, length - 1), buffer + length - 1);
++
++ /* do the corresponding single-character insertion */
++ tmp_wchar[0] = ch;
++ tmp_wchar[1] = 0;
++ if (setcchar(&tmp_cchar,
++ tmp_wchar,
++ A_NORMAL,
++ 0,
++ (void *) 0) != ERR) {
++ mvwins_wch(work,
++ limit + row,
++ ColOf(buffer, length - 1), &tmp_cchar);
++ } else {
++ beep(); /* even for tabs! */
++ mvwinsch(work,
++ limit + row,
++ ColOf(buffer, length - 1), ch);
++ }
++ wnoutrefresh(work);
++
++ legend(show, buffer, length);
++ wnoutrefresh(show);
++
++ doupdate();
++ }
++ }
++ endwin();
++ ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(void)
++{
++ printf("This program requires the wide-ncurses library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif
+diff -urNd -urNd ncurses-5.3/test/inserts.c ncurses-5.3.20030906.orig/test/inserts.c
+--- ncurses-5.3/test/inserts.c Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/inserts.c Fri Sep 12 16:41:56 2003
+@@ -0,0 +1,162 @@
++/*
++ * $Id: inserts.c,v 1.5 2003/08/09 22:07:06 tom Exp $
++ *
++ * Demonstrate the winsstr() and winsch functions.
++ * Thomas Dickey - 2002/10/19
++ */
++
++#include <test.priv.h>
++
++#define TABSIZE 8
++
++static int margin = (2 * TABSIZE) - 1;
++
++static void
++legend(WINDOW *win, char *buffer, int length)
++{
++ wmove(win, 0, 0);
++ wprintw(win,
++ "The Strings/Chars displays should match. Enter any characters.\n");
++ wprintw(win,
++ "Use down-arrow or ^N to repeat on the next line, 'q' to exit.\n");
++ wclrtoeol(win);
++ wprintw(win, "Inserted %d characters <%s>", length, buffer);
++}
++
++static int
++ColOf(char *buffer, int length)
++{
++ int n;
++ int result;
++
++ for (n = 0, result = margin + 1; n < length; ++n) {
++ int ch = UChar(buffer[n]);
++ switch (ch) {
++ case '\n':
++ /* actually newline should clear the remainder of the line
++ * and move to the next line - but that seems a little awkward
++ * in this example.
++ */
++ case '\r':
++ result = 0;
++ break;
++ case '\b':
++ if (result > 0)
++ --result;
++ break;
++ case '\t':
++ result += (TABSIZE - (result % TABSIZE));
++ break;
++ case '\177':
++ result += 2;
++ break;
++ default:
++ ++result;
++ if (ch < 32)
++ ++result;
++ break;
++ }
++ }
++ return result;
++}
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ int ch;
++ int limit;
++ int row = 1;
++ int col;
++ int length;
++ char buffer[BUFSIZ];
++ WINDOW *work;
++ WINDOW *show;
++
++ putenv("TABSIZE=8");
++ initscr();
++ (void) cbreak(); /* take input chars one at a time, no wait for \n */
++ (void) noecho(); /* don't echo input */
++ keypad(stdscr, TRUE);
++
++ limit = LINES - 5;
++ work = newwin(limit, COLS, 0, 0);
++ show = newwin(4, COLS, limit + 1, 0);
++ keypad(work, TRUE);
++
++ for (col = margin + 1; col < COLS; col += TABSIZE)
++ mvwvline(work, row, col, '.', limit - 2);
++
++ box(work, 0, 0);
++ mvwvline(work, row, margin, ACS_VLINE, limit - 2);
++ mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
++ limit /= 2;
++
++ mvwaddstr(work, 1, 2, "String");
++ mvwaddstr(work, limit + 1, 2, "Chars");
++ wnoutrefresh(work);
++
++ buffer[length = 0] = '\0';
++ legend(show, buffer, length);
++ wnoutrefresh(show);
++
++ 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) | ' ');
++ }
++
++ while ((ch = wgetch(work)) != 'q') {
++ wmove(work, row, margin + 1);
++ switch (ch) {
++ case CTRL('N'):
++ case KEY_DOWN:
++ if (row < limit) {
++ ++row;
++ /* put the whole string in, all at once */
++ mvwinsstr(work, row, margin + 1, buffer);
++
++ /* do the corresponding single-character insertion */
++ for (col = 0; col < length; ++col) {
++ mvwinsch(work, limit + row, ColOf(buffer, col), buffer[col]);
++ }
++ } else {
++ beep();
++ }
++ break;
++ case KEY_BACKSPACE:
++ ch = '\b';
++ /* FALLTHRU */
++ default:
++ if (ch <= 0 || ch > 255) {
++ beep();
++ break;
++ }
++ buffer[length++] = ch;
++ buffer[length] = '\0';
++ /* put the string in, one character at a time */
++ mvwinsstr(work,
++ row,
++ ColOf(buffer, length - 1), buffer + length - 1);
++
++ /* do the corresponding single-character insertion */
++ mvwinsch(work,
++ limit + row,
++ ColOf(buffer, length - 1), ch);
++ wnoutrefresh(work);
++
++ legend(show, buffer, length);
++ wnoutrefresh(show);
++
++ doupdate();
++ break;
++ }
++ }
++ endwin();
++ ExitProgram(EXIT_SUCCESS);
++}
+diff -urNd -urNd ncurses-5.3/test/keynames.c ncurses-5.3.20030906.orig/test/keynames.c
+--- ncurses-5.3/test/keynames.c Sun Sep 1 14:42:42 2002
++++ ncurses-5.3.20030906.orig/test/keynames.c Sun Jul 20 14:02:08 2003
+@@ -1,5 +1,5 @@
+ /*
+- * $Id: keynames.c,v 1.4 2002/09/01 19:42:42 tom Exp $
++ * $Id: keynames.c,v 1.5 2003/05/17 23:18:49 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -9,7 +9,7 @@
+ {
+ int n;
+ for (n = -1; n < 512; n++) {
+- char *result = keyname(n);
++ const char *result = keyname(n);
+ if (result != 0)
+ printf("%d(%5o):%s\n", n, n, result);
+ }
+diff -urNd -urNd ncurses-5.3/test/knight.c ncurses-5.3.20030906.orig/test/knight.c
+--- ncurses-5.3/test/knight.c Sat Jun 29 18:32:18 2002
++++ ncurses-5.3.20030906.orig/test/knight.c Tue May 13 20:08:23 2003
+@@ -6,11 +6,9 @@
+ * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support
+ * added September 20th 1995.
+ *
+- * $Id: knight.c,v 1.25 2002/06/29 23:32:18 tom Exp $
++ * $Id: knight.c,v 1.26 2002/10/19 22:11:24 tom Exp $
+ */
+
+-#include <ctype.h>
+-
+ #include <test.priv.h>
+
+ /* board size */
+diff -urNd -urNd ncurses-5.3/test/listused.sh ncurses-5.3.20030906.orig/test/listused.sh
+--- ncurses-5.3/test/listused.sh Wed Dec 31 18:00:00 1969
++++ ncurses-5.3.20030906.orig/test/listused.sh Sun Jul 20 14:02:09 2003
+@@ -0,0 +1,155 @@
++#!/bin/sh
++# $Id: listused.sh,v 1.5 2003/07/05 19:02:41 tom Exp $
++# A very simple script to list entrypoints that are used by either a test
++# program, or within the libraries. This relies on the output format of 'nm',
++# and assumes that the libraries are configured with TRACE defined, and using
++# these options:
++# --disable-macros
++# --enable-widec
++# Static libraries are used, to provide some filtering based on internal usage
++# of the different symbols.
++
++# keep the sorting independent of locale:
++if test "${LANGUAGE+set}" = set; then LANGUAGE=C; export LANGUAGE; fi
++if test "${LANG+set}" = set; then LANG=C; export LANG; fi
++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
++if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
++if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi
++
++NM_OPTS=
++
++if test ! -d ../objects ; then
++ echo "? need objects to run this script"
++ exit 1
++elif test ! -d ../lib ; then
++ echo "? need libraries to run this script"
++ exit 1
++fi
++
++PROGS=
++for name in `(echo "test:";sort modules; echo "progs:";sort ../progs/modules) |sed -e 's/[ ].*//' -e '/^[#@]/d'`
++do
++ case $name in
++ *:)
++ PROGS="$PROGS $name"
++ ;;
++ *)
++ NAME=../objects/${name}.o
++ if test -f $NAME
++ then
++ PROGS="$PROGS $NAME"
++ fi
++ ;;
++ esac
++done
++
++# For each library -
++for lib in ../lib/*.a
++do
++ LIB=`basename $lib .a`
++ case $LIB in
++ *_*|*+*)
++ continue
++ ;;
++ esac
++
++ tmp=`echo $LIB|sed -e 's/w$//'`
++ echo
++ echo "${tmp}:"
++ echo $tmp |sed -e 's/./-/g'
++ # Construct a list of public externals provided by the library.
++ WANT=`nm $NM_OPTS $lib |\
++ sed -e 's/^[^ ]*//' \
++ -e 's/^ *//' \
++ -e '/^[ a-z] /d' \
++ -e '/:$/d' \
++ -e '/^$/d' \
++ -e '/^U /d' \
++ -e 's/^[A-Z] //' \
++ -e '/^_/d' |\
++ sort -u`
++ # List programs which use that external.
++ for name in $WANT
++ do
++ HAVE=
++ tags=
++ last=
++ for prog in $PROGS
++ do
++ case $prog in
++ *:)
++ tags=$prog
++ ;;
++ *)
++ TEST=`nm $NM_OPTS $prog |\
++ sed -e 's/^[^ ]*//' \
++ -e 's/^ *//' \
++ -e '/^[ a-z] /d' \
++ -e '/:$/d' \
++ -e '/^$/d' \
++ -e 's/^[A-Z] //' \
++ -e '/^_/d' \
++ -e 's/^'${name}'$/_/' \
++ -e '/^[^_]/d'`
++ if test -n "$TEST"
++ then
++ have=`basename $prog .o`
++ if test -n "$HAVE"
++ then
++ if test "$last" = "$tags"
++ then
++ HAVE="$HAVE $have"
++ else
++ HAVE="$HAVE $tags $have"
++ fi
++ else
++ HAVE="$tags $have"
++ fi
++ last="$tags"
++ fi
++ ;;
++ esac
++ done
++ # if we did not find a program using it directly, see if it
++ # is used within a library.
++ if test -z "$HAVE"
++ then
++ for tmp in ../lib/*.a
++ do
++ case $tmp in
++ *_*|*+*)
++ continue
++ ;;
++ esac
++ TEST=`nm $NM_OPTS $tmp |\
++ sed -e 's/^[^ ]*//' \
++ -e 's/^ *//' \
++ -e '/^[ a-z] /d' \
++ -e '/:$/d' \
++ -e '/^$/d' \
++ -e '/^[A-TV-Z] /d' \
++ -e 's/^[A-Z] //' \
++ -e '/^_/d' \
++ -e 's/^'${name}'$/_/' \
++ -e '/^[^_]/d'`
++ if test -n "$TEST"
++ then
++ tmp=`basename $tmp .a |sed -e 's/w$//'`
++ HAVE=`echo $tmp | sed -e 's/lib/lib: /'`
++ break
++ fi
++ done
++ fi
++ test -z "$HAVE" && HAVE="-"
++ lenn=`expr 39 - length $name`
++ lenn=`expr $lenn / 8`
++ tabs=
++ while test $lenn != 0
++ do
++ tabs="${tabs} "
++ lenn=`expr $lenn - 1`
++ done
++ echo "${name}${tabs}${HAVE}"
++ done
++done
+diff -urNd -urNd ncurses-5.3/test/modules ncurses-5.3.20030906.orig/test/modules
+--- ncurses-5.3/test/modules Sat Feb 12 19:05:13 2000
++++ ncurses-5.3.20030906.orig/test/modules Tue May 13 20:08:23 2003
+@@ -1,7 +1,7 @@
+ # Test-Program modules
+-# $Id: modules,v 1.13 2000/02/13 01:05:13 tom Exp $
++# $Id: modules,v 1.19 2003/04/26 16:31:10 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2002,2003 Free 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,28 +28,36 @@
+ # authorization. #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1997
++# Author: Thomas E. Dickey 1997-2003
+ #
+
+ @ base
+ blue progs $(srcdir) ../include/term.h
+ bs progs $(srcdir)
+-cardfile progs $(srcdir) ../include/panel.h ../include/menu.h ../include/form.h
++cardfile progs $(srcdir) ../include/panel.h ../include/form.h
++demo_defkey progs $(srcdir)
++demo_keyok progs $(srcdir)
++demo_forms progs $(srcdir) ../include/form.h
++demo_menus progs $(srcdir) ../include/menu.h
++demo_panels progs $(srcdir) ../include/panel.h
+ ditto progs $(srcdir)
+ dots progs $(srcdir) ../include/term.h
+-filter progs $(srcdir)
++edit_field progs $(srcdir)
++filter progs $(srcdir) ../include/form.h
+ firework progs $(srcdir) ../include/term.h
+ firstlast progs $(srcdir)
+ gdc progs $(srcdir)
+ hanoi progs $(srcdir)
+ hashtest progs $(srcdir)
++ins_wide progs $(srcdir)
++inserts progs $(srcdir)
+ keynames progs $(srcdir)
+ knight progs $(srcdir)
+ lrtest progs $(srcdir)
+ ncurses progs $(srcdir) ../include/panel.h ../include/menu.h ../include/form.h
+ newdemo progs $(srcdir)
+-rain progs $(srcdir) ../include/term.h
+ railroad progs $(srcdir) ../include/termcap.h
++rain progs $(srcdir) ../include/term.h
+ tclock progs $(srcdir)
+ testaddch progs $(srcdir)
+ testcurs progs $(srcdir)
+diff -urNd -urNd ncurses-5.3/test/ncurses.c ncurses-5.3.20030906.orig/test/ncurses.c
+--- ncurses-5.3/test/ncurses.c Sat Sep 14 19:39:33 2002
++++ ncurses-5.3.20030906.orig/test/ncurses.c Sun Jul 20 14:02:09 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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,10 @@
+ Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
+ Thomas E. Dickey (beginning revision 1.27 in 1996).
+
+-$Id: ncurses.c,v 1.180 2002/09/15 00:39:33 tom Exp $
++$Id: ncurses.c,v 1.197 2003/07/06 00:06:06 tom Exp $
+
+ ***************************************************************************/
+
+-#include <stdio.h>
+-#include <ctype.h>
+-#include <assert.h>
+-
+ #include <test.priv.h>
+
+ #if HAVE_GETTIMEOFDAY
+@@ -59,25 +55,16 @@
+ #endif
+ #endif
+
+-#if HAVE_PANEL_H && HAVE_LIBPANEL
+-#define USE_LIBPANEL 1
++#if USE_LIBPANEL
+ #include <panel.h>
+-#else
+-#define USE_LIBPANEL 0
+ #endif
+
+-#if HAVE_MENU_H && HAVE_LIBMENU
+-#define USE_LIBMENU 1
++#if USE_LIBMENU
+ #include <menu.h>
+-#else
+-#define USE_LIBMENU 0
+ #endif
+
+-#if HAVE_FORM_H && HAVE_LIBFORM
+-#define USE_LIBFORM 1
++#if USE_LIBFORM
+ #include <form.h>
+-#else
+-#define USE_LIBFORM 0
+ #endif
+
+ #ifdef NCURSES_VERSION
+@@ -122,13 +109,7 @@
+ #endif
+
+ #define P(string) printw("%s\n", string)
+-#ifdef CTRL
+-#undef CTRL
+-#endif
+-#define CTRL(x) ((x) & 0x1f)
+
+-#define QUIT CTRL('Q')
+-#define ESCAPE CTRL('[')
+ #define BLANK ' ' /* this is the background character */
+
+ #undef max_colors
+@@ -181,6 +162,74 @@
+ }
+ #define Getchar() wGetchar(stdscr)
+
++/* replaces wgetnstr(), since we want to be able to edit values */
++static void
++wGetstring(WINDOW *win, char *buffer, int limit)
++{
++ int y0, x0, x, ch;
++ bool done = FALSE;
++
++ echo();
++ getyx(win, y0, x0);
++ wattrset(win, A_REVERSE);
++
++ x = strlen(buffer);
++ while (!done) {
++ if (x > (int) strlen(buffer))
++ x = (int) strlen(buffer);
++ wmove(win, y0, x0);
++ wprintw(win, "%-*s", limit, buffer);
++ wmove(win, y0, x0 + x);
++ switch (ch = wGetchar(win)) {
++ case '\n':
++ case KEY_ENTER:
++ done = TRUE;
++ break;
++ case CTRL('U'):
++ *buffer = '\0';
++ break;
++ case '\b':
++ case KEY_BACKSPACE:
++ case KEY_DC:
++ if (x > 0) {
++ int j;
++ for (j = --x; (buffer[j] = buffer[j + 1]) != '\0'; ++j) {
++ ;
++ }
++ } else {
++ beep();
++ }
++ break;
++ case KEY_LEFT:
++ if (x > 0) {
++ --x;
++ } else {
++ flash();
++ }
++ break;
++ case KEY_RIGHT:
++ ++x;
++ break;
++ default:
++ if (!isprint(ch) || ch >= KEY_MIN) {
++ beep();
++ } else if ((int) strlen(buffer) < limit) {
++ int j;
++ for (j = strlen(buffer) + 1; j > x; --j) {
++ buffer[j] = buffer[j - 1];
++ }
++ buffer[x++] = ch;
++ } else {
++ flash();
++ }
++ }
++ }
++
++ wattroff(win, A_REVERSE);
++ wmove(win, y0, x0);
++ noecho();
++}
++
+ #if USE_WIDEC_SUPPORT
+ static int
+ wGet_wchar(WINDOW *win, wint_t * result)
+@@ -206,6 +255,98 @@
+ }
+ #define Get_wchar(result) wGet_wchar(stdscr, result)
+
++/* replaces wgetn_wstr(), since we want to be able to edit values */
++static void
++wGet_wstring(WINDOW *win, wchar_t * buffer, int limit)
++{
++ int y0, x0, x;
++ wint_t ch;
++ bool done = FALSE;
++
++ echo();
++ getyx(win, y0, x0);
++ wattrset(win, A_REVERSE);
++
++ x = wcslen(buffer);
++ while (!done) {
++ if (x > (int) wcslen(buffer))
++ x = (int) wcslen(buffer);
++ wmove(win, y0, x0);
++ waddnwstr(win, buffer, limit);
++ if (x < limit)
++ wprintw(win, "%*s", limit - x, " ");
++ wmove(win, y0, x0 + x);
++ switch (wGet_wchar(win, &ch)) {
++ case KEY_CODE_YES:
++ switch (ch) {
++ case KEY_ENTER:
++ ch = '\n';
++ break;
++ case KEY_BACKSPACE:
++ case KEY_DC:
++ ch = '\b';
++ break;
++ case KEY_LEFT:
++ case KEY_RIGHT:
++ break;
++ default:
++ ch = -1;
++ break;
++ }
++ case OK:
++ break;
++ default:
++ ch = -1;
++ break;
++ }
++
++ switch (ch) {
++ case '\n':
++ done = TRUE;
++ break;
++ case CTRL('U'):
++ *buffer = '\0';
++ break;
++ case '\b':
++ if (x > 0) {
++ int j;
++ for (j = --x; (buffer[j] = buffer[j + 1]) != '\0'; ++j) {
++ ;
++ }
++ } else {
++ beep();
++ }
++ break;
++ case KEY_LEFT:
++ if (x > 0) {
++ --x;
++ } else {
++ flash();
++ }
++ break;
++ case KEY_RIGHT:
++ ++x;
++ break;
++ default:
++ if (!isprint(ch) || ch >= KEY_MIN) {
++ beep();
++ } else if ((int) wcslen(buffer) < limit) {
++ int j;
++ for (j = wcslen(buffer) + 1; j > x; --j) {
++ buffer[j] = buffer[j - 1];
++ }
++ buffer[x++] = ch;
++ } else {
++ flash();
++ }
++ }
++ }
++
++ wattroff(win, A_REVERSE);
++ wmove(win, y0, x0);
++ noecho();
++}
++
+ #endif
+
+ static void
+@@ -606,6 +747,7 @@
+ * For wgetch_test(), we create pairs of windows - one for a box, one for text.
+ * Resize both and paint the box in the parent.
+ */
++#ifdef KEY_RESIZE
+ static void
+ resize_wide_boxes(int level, WINDOW *win)
+ {
+@@ -640,17 +782,39 @@
+ }
+ doupdate();
+ }
++#endif /* KEY_RESIZE */
++
++static char *
++wcstos(const wchar_t * src)
++{
++ int need;
++ mbstate_t state;
++ char *result = 0;
++ const wchar_t *tmp = src;
++
++ memset(&state, 0, sizeof(state));
++ if ((need = wcsrtombs(0, &tmp, 0, &state)) > 0) {
++ result = calloc(need + 1, 1);
++ tmp = src;
++ if (wcsrtombs(result, &tmp, need, &state) != (size_t) need) {
++ free(result);
++ result = 0;
++ }
++ }
++ return result;
++}
+
+ static void
+ wget_wch_test(int level, WINDOW *win, int delay)
+ {
+- char buf[BUFSIZ];
++ wchar_t buf[BUFSIZ];
+ int first_y, first_x;
+ wint_t c;
+ int incount = 0;
+ bool flags[256];
+ bool blocking = (delay < 0);
+ int y, x, code;
++ char *temp;
+
+ memset(flags, FALSE, sizeof(flags));
+ flags['k'] = (win == stdscr);
+@@ -686,9 +850,14 @@
+ } else if (c == 'g') {
+ waddstr(win, "getstr test: ");
+ echo();
+- wgetnstr(win, buf, sizeof(buf) - 1);
++ wgetn_wstr(win, (wint_t *) buf, sizeof(buf) - 1);
+ noecho();
+- wprintw(win, "I saw %d characters:\n\t`%s'.", strlen(buf), buf);
++ if ((temp = wcstos(buf)) != 0) {
++ wprintw(win, "I saw %d characters:\n\t`%s'.", wcslen(buf), temp);
++ free(temp);
++ } else {
++ wprintw(win, "I saw %d characters (cannot convert).", wcslen(buf));
++ }
+ wclrtoeol(win);
+ wgetch_wrap(win, first_y);
+ } else if (c == 'k') {
+@@ -782,11 +951,40 @@
+ *
+ ****************************************************************************/
+
++#define MAX_ATTRSTRING 31
++#define LEN_ATTRSTRING 26
++
++static char attr_test_string[] = "abcde fghij klmno pqrst uvwxy z";
++
++static void
++adjust_attr_string(int adjust)
++{
++ int first = ((int) UChar(attr_test_string[0])) + adjust;
++ int last = first + LEN_ATTRSTRING;
++
++ if (first >= ' ' && last <= '~') { /* 32..126 */
++ int j, k;
++ for (j = 0, k = first; k <= last; ++j, ++k) {
++ attr_test_string[j] = k;
++ if (((k + 1 - first) % 5) == 0) {
++ ++j;
++ if (j < MAX_ATTRSTRING)
++ attr_test_string[j] = ' ';
++ }
++ }
++ while (j < MAX_ATTRSTRING)
++ attr_test_string[j++] = ' ';
++ attr_test_string[j] = '\0';
++ } else {
++ beep();
++ }
++}
++
+ static int
+ show_attr(int row, int skip, chtype attr, const char *name)
+ {
+- static const char *string = "abcde fghij klmno pqrst uvwxy z";
+ int ncv = tigetnum("ncv");
++ chtype test = attr & ~A_ALTCHARSET;
+
+ mvprintw(row, 8, "%s mode:", name);
+ mvprintw(row, 24, "|");
+@@ -804,29 +1002,24 @@
+ * is possible to turn off the A_ALTCHARSET flag for the characters which
+ * are added, and it would be an unexpected result to have the mapped
+ * characters visible on the screen.
+- *
+- * This example works because the indices into acs_map[] are mostly from
+- * the lowercase characters.
+ */
+ if (attr & A_ALTCHARSET) {
+- const char *s = string;
+- while (*s) {
+- int ch = *s++;
+-#ifdef CURSES_ACS_ARRAY
+- if ((ch = CURSES_ACS_ARRAY[ch]) == 0)
+- ch = ' ';
+-#endif
++ const char *s;
++ int ch;
++
++ for (s = attr_test_string; *s != '\0'; ++s) {
++ ch = UChar(*s);
+ addch(ch);
+ }
+ } else {
+- addstr(string);
++ addstr(attr_test_string);
+ }
+ attroff(attr);
+ if (skip)
+ printw("%*s", skip, " ");
+ printw("|");
+- if (attr != A_NORMAL) {
+- if (!(termattrs() & attr)) {
++ if (test != A_NORMAL) {
++ if (!(termattrs() & test)) {
+ printw(" (N/A)");
+ } else if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
+ static const chtype table[] =
+@@ -867,7 +1060,8 @@
+ } else if (ch == CTRL('L')) {
+ touchwin(stdscr);
+ touchwin(curscr);
+- } else if (has_colors()) {
++ wrefresh(curscr);
++ } else {
+ switch (ch) {
+ case 'a':
+ *ac = 0;
+@@ -875,39 +1069,40 @@
+ case 'A':
+ *ac = A_ALTCHARSET;
+ break;
+- case 'f':
+- *fg = (*fg + 1);
+- break;
+- case 'F':
+- *fg = (*fg - 1);
+- break;
+- case 'b':
+- *bg = (*bg + 1);
++ case '<':
++ adjust_attr_string(-1);
+ break;
+- case 'B':
+- *bg = (*bg - 1);
++ case '>':
++ adjust_attr_string(1);
+ break;
+ default:
+- return FALSE;
+- }
+- if (*fg >= max_colors)
+- *fg = 0;
+- if (*fg < 0)
+- *fg = max_colors - 1;
+- if (*bg >= max_colors)
+- *bg = 0;
+- if (*bg < 0)
+- *bg = max_colors - 1;
+- } else {
+- switch (ch) {
+- case 'a':
+- *ac = 0;
+- break;
+- case 'A':
+- *ac = A_ALTCHARSET;
++ if (has_colors()) {
++ switch (ch) {
++ case 'f':
++ *fg = (*fg + 1);
++ break;
++ case 'F':
++ *fg = (*fg - 1);
++ break;
++ case 'b':
++ *bg = (*bg + 1);
++ break;
++ case 'B':
++ *bg = (*bg - 1);
++ break;
++ default:
++ return FALSE;
++ }
++ if (*fg >= max_colors)
++ *fg = 0;
++ if (*fg < 0)
++ *fg = max_colors - 1;
++ if (*bg >= max_colors)
++ *bg = 0;
++ if (*bg < 0)
++ *bg = max_colors - 1;
++ }
+ break;
+- default:
+- return FALSE;
+ }
+ }
+ return TRUE;
+@@ -965,12 +1160,12 @@
+ mvprintw(row + 1, 8,
+ "Enter a digit to set gaps on each side of displayed attributes");
+ mvprintw(row + 2, 8,
+- "^L = repaint");
++ "^L repaints, </> shifts, ");
+ if (has_colors())
+- printw(". f/F/b/F toggle colors (now %d/%d), a/A altcharset (%d)",
++ printw("f/F/b/F toggle color (now %d/%d), a/A ACS (%d)",
+ fg, bg, ac != 0);
+ else
+- printw(". a/A altcharset (%d)", ac != 0);
++ printw("a/A ACS (%d)", ac != 0);
+
+ refresh();
+ } while (attr_getc(&n, &fg, &bg, &ac));
+@@ -1241,15 +1436,73 @@
+ *
+ ****************************************************************************/
+
++#define SLK_HELP 17
++#define SLK_WORK (SLK_HELP + 3)
++
++static void
++slk_help(void)
++{
++ static const char *table[] =
++ {
++ "Available commands are:"
++ ,""
++ ,"^L -- repaint this message and activate soft keys"
++ ,"a/d -- activate/disable soft keys"
++ ,"c -- set centered format for labels"
++ ,"l -- set left-justified format for labels"
++ ,"r -- set right-justified format for labels"
++ ,"[12345678] -- set label; labels are numbered 1 through 8"
++ ,"e -- erase stdscr (should not erase labels)"
++ ,"s -- test scrolling of shortened screen"
++#if HAVE_SLK_COLOR
++ ,"F/B -- cycle through foreground/background colors"
++#endif
++ ,"x, q -- return to main menu"
++ ,""
++ ,"Note: if activating the soft keys causes your terminal to scroll up"
++ ,"one line, your terminal auto-scrolls when anything is written to the"
++ ,"last screen position. The ncurses code does not yet handle this"
++ ,"gracefully."
++ };
++ unsigned j;
++
++ move(2, 0);
++ for (j = 0; j < SIZEOF(table); ++j) {
++ P(table[j]);
++ }
++ refresh();
++}
++
+ static void
+ slk_test(void)
+ /* exercise the soft keys */
+ {
+ int c, fmt = 1;
+ char buf[9];
++ char *s;
++#if HAVE_SLK_COLOR
++ short fg = COLOR_BLACK;
++ short bg = COLOR_WHITE;
++ bool new_color = FALSE;
++#endif
+
+ c = CTRL('l');
++#if HAVE_SLK_COLOR
++ if (has_colors()) {
++ new_color = TRUE;
++ }
++#endif
++
+ do {
++#if HAVE_SLK_COLOR
++ if (new_color) {
++ init_pair(1, bg, fg);
++ slk_color(1);
++ new_color = FALSE;
++ mvprintw(SLK_WORK, 0, "Colors %d/%d\n", fg, bg);
++ refresh();
++ }
++#endif
+ move(0, 0);
+ switch (c) {
+ case CTRL('l'):
+@@ -1258,25 +1511,7 @@
+ mvaddstr(0, 20, "Soft Key Exerciser");
+ attroff(A_BOLD);
+
+- move(2, 0);
+- P("Available commands are:");
+- P("");
+- P("^L -- refresh screen");
+- P("a -- activate or restore soft keys");
+- P("d -- disable soft keys");
+- P("c -- set centered format for labels");
+- P("l -- set left-justified format for labels");
+- P("r -- set right-justified format for labels");
+- P("[12345678] -- set label; labels are numbered 1 through 8");
+- P("e -- erase stdscr (should not erase labels)");
+- P("s -- test scrolling of shortened screen");
+- P("x, q -- return to main menu");
+- P("");
+- P("Note: if activating the soft keys causes your terminal to");
+- P("scroll up one line, your terminal auto-scrolls when anything");
+- P("is written to the last screen position. The ncurses code");
+- P("does not yet handle this gracefully.");
+- refresh();
++ slk_help();
+ /* fall through */
+
+ case 'a':
+@@ -1288,7 +1523,7 @@
+ break;
+
+ case 's':
+- mvprintw(20, 0, "Press Q to stop the scrolling-test: ");
++ mvprintw(SLK_WORK, 0, "Press Q to stop the scrolling-test: ");
+ while ((c = Getchar()) != 'Q' && (c != ERR))
+ addch((chtype) c);
+ break;
+@@ -1317,20 +1552,155 @@
+ case '6':
+ case '7':
+ case '8':
+- (void) mvaddstr(20, 0, "Please enter the label value: ");
+- echo();
+- wgetnstr(stdscr, buf, 8);
+- noecho();
++ (void) mvaddstr(SLK_WORK, 0, "Please enter the label value: ");
++ strcpy(buf, "");
++ if ((s = slk_label(c - '0')) != 0) {
++ strncpy(buf, s, 8);
++ }
++ wGetstring(stdscr, buf, 8);
+ slk_set((c - '0'), buf, fmt);
+ slk_refresh();
+- move(20, 0);
+- clrtoeol();
++ move(SLK_WORK, 0);
++ clrtobot();
++ break;
++
++ case 'x':
++ case 'q':
++ goto done;
++
++#if HAVE_SLK_COLOR
++ case 'F':
++ if (has_colors()) {
++ fg = (fg + 1) % max_colors;
++ new_color = TRUE;
++ }
++ break;
++ case 'B':
++ if (has_colors()) {
++ bg = (bg + 1) % max_colors;
++ new_color = TRUE;
++ }
++ break;
++#endif
++
++ default:
++ beep();
++ }
++ } while
++ ((c = Getchar()) != EOF);
++
++ done:
++ erase();
++ endwin();
++}
++
++#if USE_WIDEC_SUPPORT
++static void
++wide_slk_test(void)
++/* exercise the soft keys */
++{
++ int c, fmt = 1;
++ wchar_t buf[9];
++ char *s;
++ short fg = COLOR_BLACK;
++ short bg = COLOR_WHITE;
++ bool new_color = FALSE;
++
++ c = CTRL('l');
++ if (has_colors()) {
++ new_color = TRUE;
++ }
++ do {
++ if (new_color) {
++ init_pair(1, bg, fg);
++ slk_color(1);
++ new_color = FALSE;
++ mvprintw(SLK_WORK, 0, "Colors %d/%d\n", fg, bg);
++ refresh();
++ }
++ move(0, 0);
++ switch (c) {
++ case CTRL('l'):
++ erase();
++ attr_on(WA_BOLD, NULL);
++ mvaddstr(0, 20, "Soft Key Exerciser");
++ attr_off(WA_BOLD, NULL);
++
++ slk_help();
++ /* fall through */
++
++ case 'a':
++ slk_restore();
++ break;
++
++ case 'e':
++ wclear(stdscr);
++ break;
++
++ case 's':
++ mvprintw(SLK_WORK, 0, "Press Q to stop the scrolling-test: ");
++ while ((c = Getchar()) != 'Q' && (c != ERR))
++ addch((chtype) c);
++ break;
++
++ case 'd':
++ slk_clear();
++ break;
++
++ case 'l':
++ fmt = 0;
++ break;
++
++ case 'c':
++ fmt = 1;
++ break;
++
++ case 'r':
++ fmt = 2;
++ break;
++
++ case '1':
++ case '2':
++ case '3':
++ case '4':
++ case '5':
++ case '6':
++ case '7':
++ case '8':
++ (void) mvaddstr(SLK_WORK, 0, "Please enter the label value: ");
++ *buf = 0;
++ if ((s = slk_label(c - '0')) != 0) {
++ int j;
++ for (j = 0; j < 8; ++j) {
++ if ((buf[j] = UChar(s[j])) == 0)
++ break;
++ }
++ buf[j] = 0;
++ }
++ wGet_wstring(stdscr, buf, 8);
++ slk_wset((c - '0'), buf, fmt);
++ slk_refresh();
++ move(SLK_WORK, 0);
++ clrtobot();
+ break;
+
+ case 'x':
+ case 'q':
+ goto done;
+
++ case 'F':
++ if (has_colors()) {
++ fg = (fg + 1) % max_colors;
++ new_color = TRUE;
++ }
++ break;
++ case 'B':
++ if (has_colors()) {
++ bg = (bg + 1) % max_colors;
++ new_color = TRUE;
++ }
++ break;
++
+ default:
+ beep();
+ }
+@@ -1341,6 +1711,7 @@
+ erase();
+ endwin();
+ }
++#endif
+
+ /****************************************************************************
+ *
+@@ -1624,13 +1995,15 @@
+ }
+
+ static int
+-show_2_wacs(int n, const char *name, char *code)
++show_2_wacs(int n, const char *name, const char *code)
+ {
+ const int height = 16;
+ int row = 4 + (n % height);
+ int col = (n / height) * COLS / 2;
++ char temp[80];
++
+ mvprintw(row, col, "%*s : ", COLS / 4, name);
+- addstr(code);
++ addstr(strcpy(temp, code));
+ return n + 1;
+ }
+
+@@ -1683,7 +2056,8 @@
+ n = show_2_wacs(n, "WACS_S3", "\342\216\273");
+ n = show_2_wacs(n, "WACS_S7", "\342\216\274");
+ n = show_2_wacs(n, "WACS_S9", "\342\216\275");
+- /* *INDENT-OFF* */
++ /* *INDENT-ON* */
++
+ }
+
+ static void
+@@ -3747,12 +4121,80 @@
+ }
+ }
+
++/*
++ * Allow a middle initial, optionally with a '.' to end it.
++ */
++static bool
++mi_field_check(FIELD * fld, const void *data GCC_UNUSED)
++{
++ char *s = field_buffer(fld, 0);
++ int state = 0;
++ int n;
++
++ for (n = 0; s[n] != '\0'; ++n) {
++ switch (state) {
++ case 0:
++ if (s[n] == '.') {
++ if (n != 1)
++ return FALSE;
++ state = 2;
++ } else if (isspace(UChar(s[n]))) {
++ state = 2;
++ }
++ break;
++ case 2:
++ if (!isspace(UChar(s[n])))
++ return FALSE;
++ break;
++ }
++ }
++
++ /* force the form to display a leading capital */
++ if (islower(UChar(s[0]))) {
++ s[0] = toupper(UChar(s[0]));
++ set_field_buffer(fld, 0, s);
++ }
++ return TRUE;
++}
++
++static bool
++mi_char_check(int ch, const void *data GCC_UNUSED)
++{
++ return ((isalpha(ch) || ch == '.') ? TRUE : FALSE);
++}
++
++/*
++ * Passwords should be at least 6 characters.
++ */
++static bool
++pw_field_check(FIELD * fld, const void *data GCC_UNUSED)
++{
++ char *s = field_buffer(fld, 0);
++ int n;
++
++ for (n = 0; s[n] != '\0'; ++n) {
++ if (isspace(UChar(s[n]))) {
++ if (n < 6)
++ return FALSE;
++ }
++ }
++ return TRUE;
++}
++
++static bool
++pw_char_check(int ch, const void *data GCC_UNUSED)
++{
++ return (isgraph(ch) ? TRUE : FALSE);
++}
++
+ static void
+ demo_forms(void)
+ {
+ WINDOW *w;
+ FORM *form;
+ FIELD *f[12], *secure;
++ FIELDTYPE *fty_middle = new_fieldtype(mi_field_check, mi_char_check);
++ FIELDTYPE *fty_passwd = new_fieldtype(pw_field_check, pw_char_check);
+ int finished = 0, c;
+ unsigned n = 0;
+
+@@ -3775,17 +4217,26 @@
+
+ /* describe the form */
+ f[n++] = make_label(0, 15, "Sample Form");
++
+ f[n++] = make_label(2, 0, "Last Name");
+ f[n++] = make_field(3, 0, 1, 18, FALSE);
++ 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, FALSE);
++ 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, FALSE);
++ set_field_type(f[n - 1], fty_middle);
++
+ f[n++] = make_label(5, 0, "Comments");
+ f[n++] = make_field(6, 0, 4, 46, FALSE);
++
+ f[n++] = make_label(5, 20, "Password:");
+ secure =
+ f[n++] = make_field(5, 30, 1, 9, TRUE);
++ set_field_type(f[n - 1], fty_passwd);
+ f[n++] = (FIELD *) 0;
+
+ form = new_form(f);
+@@ -3982,6 +4433,11 @@
+ slk_test();
+ break;
+
++#if USE_WIDEC_SUPPORT
++ case 'E':
++ wide_slk_test();
++ break;
++#endif
+ case 'f':
+ acs_display();
+ break;
+@@ -4252,6 +4708,9 @@
+ (void) puts("c = color test pattern");
+ (void) puts("d = edit RGB color values");
+ (void) puts("e = exercise soft keys");
++#if USE_WIDEC_SUPPORT
++ (void) puts("E = exercise soft keys using wide-characters");
++#endif
+ (void) puts("f = display ACS characters");
+ #if USE_WIDEC_SUPPORT
+ (void) puts("F = display Wide-ACS characters");
+diff -urNd -urNd ncurses-5.3/test/railroad.c ncurses-5.3.20030906.orig/test/railroad.c
+--- ncurses-5.3/test/railroad.c Sat Apr 6 14:45:22 2002
++++ ncurses-5.3.20030906.orig/test/railroad.c Tue May 13 20:08:23 2003
+@@ -29,14 +29,12 @@
+ /*
+ * Author: Thomas E. Dickey <dickey@clark.net> 2000
+ *
+- * $Id: railroad.c,v 1.10 2002/04/06 20:45:22 tom Exp $
++ * $Id: railroad.c,v 1.11 2002/10/19 22:11:24 tom Exp $
+ *
+ * A simple demo of the termcap interface.
+ */
+ #include <test.priv.h>
+
+-#include <ctype.h>
+-
+ static char *wipeit;
+ static char *moveit;
+ static int length;
+diff -urNd -urNd ncurses-5.3/test/tclock.c ncurses-5.3.20030906.orig/test/tclock.c
+--- ncurses-5.3/test/tclock.c Sat Jun 29 18:34:13 2002
++++ ncurses-5.3.20030906.orig/test/tclock.c Tue May 13 20:08:23 2003
+@@ -1,6 +1,6 @@
+-/* $Id: tclock.c,v 1.22 2002/06/29 23:34:13 tom Exp $ */
++/* $Id: tclock.c,v 1.24 2002/12/29 01:40:30 tom Exp $ */
+
+-#include "test.priv.h"
++#include <test.priv.h>
+
+ #include <math.h>
+
+@@ -125,9 +125,11 @@
+ int sdx, sdy;
+ int ch;
+ int lastbeep = -1;
++ bool odd = FALSE;
+ time_t tim;
+ struct tm *t;
+ char szChar[10];
++ char *text;
+ int my_bg = COLOR_BLACK;
+ #if HAVE_GETTIMEOFDAY
+ struct timeval current;
+@@ -151,6 +153,7 @@
+ init_pair(1, COLOR_RED, my_bg);
+ init_pair(2, COLOR_MAGENTA, my_bg);
+ init_pair(3, COLOR_GREEN, my_bg);
++ init_pair(4, COLOR_WHITE, COLOR_BLUE);
+ }
+ #ifdef KEY_RESIZE
+ keypad(stdscr, TRUE);
+@@ -218,11 +221,16 @@
+ if (has_colors())
+ attrset(COLOR_PAIR(0));
+
+- mvaddstr(LINES - 2, 0, ctime(&tim));
++ text = ctime(&tim);
++ mvprintw(2, 0, "%.*s", (int) (strlen(text) - 1), text);
+ refresh();
+ if ((t->tm_sec % 5) == 0
+ && t->tm_sec != lastbeep) {
+ lastbeep = t->tm_sec;
++ if (has_colors()) {
++ odd = !odd;
++ bkgd(odd ? COLOR_PAIR(4) : COLOR_PAIR(0));
++ }
+ beep();
+ }
+
+diff -urNd -urNd ncurses-5.3/test/test.priv.h ncurses-5.3.20030906.orig/test/test.priv.h
+--- ncurses-5.3/test/test.priv.h Sat Jun 29 18:36:12 2002
++++ ncurses-5.3.20030906.orig/test/test.priv.h Tue May 13 20:08:23 2003
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2002,2003 Free 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,17 +29,32 @@
+ /****************************************************************************
+ * Author: Thomas E. Dickey <dickey@clark.net> 1996 *
+ ****************************************************************************/
+-/* $Id: test.priv.h,v 1.35 2002/06/29 23:36:12 tom Exp $ */
++/* $Id: test.priv.h,v 1.45 2003/04/26 18:23:36 tom Exp $ */
++
++#ifndef __TEST_PRIV_H
++#define __TEST_PRIV_H 1
+
+-#if HAVE_CONFIG_H
+ #include <ncurses_cfg.h>
+-#else
+-#define HAVE_CURSES_VERSION 0
+-#define HAVE_RESIZETERM 0
+-#define HAVE_USE_DEFAULT_COLORS 0
+-#define HAVE_WRESIZE 0
++
++/*
++ * Fix ifdef's that look for the form/menu/panel libraries, if we are building
++ * with wide-character ncurses.
++ */
++#ifdef HAVE_LIBFORMW
++#define HAVE_LIBFORM 1
++#endif
++
++#ifdef HAVE_LIBMENUW
++#define HAVE_LIBMENU 1
++#endif
++
++#ifdef HAVE_LIBPANELW
++#define HAVE_LIBPANEL 1
+ #endif
+
++/*
++ * Fallback definitions to accommodate broken compilers
++ */
+ #ifndef HAVE_CURSES_VERSION
+ #define HAVE_CURSES_VERSION 0
+ #endif
+@@ -80,10 +95,18 @@
+ #define HAVE_PANEL_H 0
+ #endif
+
++#ifndef HAVE_SLK_COLOR
++#define HAVE_SLK_COLOR 0
++#endif
++
+ #ifndef HAVE_WRESIZE
+ #define HAVE_WRESIZE 0
+ #endif
+
++#ifndef NCURSES_EXT_FUNCS
++#define NCURSES_EXT_FUNCS 0
++#endif
++
+ #ifndef NCURSES_NOMACROS
+ #define NCURSES_NOMACROS 0
+ #endif
+@@ -125,6 +148,9 @@
+ #define setlocale(name,string) /* nothing */
+ #endif
+
++#include <assert.h>
++#include <ctype.h>
++
+ #ifndef GCC_NORETURN
+ #define GCC_NORETURN /* nothing */
+ #endif
+@@ -144,24 +170,48 @@
+ #endif
+ #endif
+
++#if HAVE_PANEL_H && HAVE_LIBPANEL
++#define USE_LIBPANEL 1
++#else
++#define USE_LIBPANEL 0
++#endif
++
++#if HAVE_MENU_H && HAVE_LIBMENU
++#define USE_LIBMENU 1
++#else
++#define USE_LIBMENU 0
++#endif
++
++#if HAVE_FORM_H && HAVE_LIBFORM
++#define USE_LIBFORM 1
++#else
++#define USE_LIBFORM 0
++#endif
++
+ #ifndef HAVE_TYPE_ATTR_T
+ #if !USE_WIDEC_SUPPORT
+ #define attr_t long
+ #endif
+ #endif
+
+-#ifndef NCURSES_CH_T
++#undef NCURSES_CH_T
+ #if !USE_WIDEC_SUPPORT
+ #define NCURSES_CH_T chtype
+ #else
+ #define NCURSES_CH_T cchar_t
+ #endif
+-#endif
+
+ #ifndef CCHARW_MAX
+ #define CCHARW_MAX 5
+ #endif
+
++#ifndef CTRL
++#define CTRL(x) ((x) & 0x1f)
++#endif
++
++#define QUIT CTRL('Q')
++#define ESCAPE CTRL('[')
++
+ #ifndef KEY_MIN
+ #define KEY_MIN 256 /* not defined in Solaris 8 */
+ #endif
+@@ -216,3 +266,21 @@
+ #ifndef NCURSES_CONST
+ #define NCURSES_CONST /* nothing */
+ #endif
++
++/* out-of-band values for representing absent capabilities */
++#define ABSENT_BOOLEAN (-1) /* 255 */
++#define ABSENT_NUMERIC (-1)
++#define ABSENT_STRING (char *)0
++
++/* out-of-band values for representing cancels */
++#define CANCELLED_BOOLEAN (char)(-2) /* 254 */
++#define CANCELLED_NUMERIC (-2)
++#define CANCELLED_STRING (char *)(-1)
++
++#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
++#define VALID_NUMERIC(s) ((s) >= 0)
++#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
++
++#define VT_ACSC "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~"
++
++#endif /* __TEST_PRIV_H */
+diff -urNd -urNd ncurses-5.3/test/testcurs.c ncurses-5.3.20030906.orig/test/testcurs.c
+--- ncurses-5.3/test/testcurs.c Sat Sep 14 17:45:15 2002
++++ ncurses-5.3.20030906.orig/test/testcurs.c Tue May 13 20:08:23 2003
+@@ -7,11 +7,10 @@
+ * wrs(5/28/93) -- modified to be consistent (perform identically) with either
+ * PDCurses or under Unix System V, R4
+ *
+- * $Id: testcurs.c,v 1.31 2002/09/14 22:45:15 tom Exp $
++ * $Id: testcurs.c,v 1.32 2002/10/19 22:11:24 tom Exp $
+ */
+
+ #include <test.priv.h>
+-#include <ctype.h>
+
+ #if defined(XCURSES)
+ char *XCursesProgramName = "testcurs";
+diff -urNd -urNd ncurses-5.3/test/testscanw.c ncurses-5.3.20030906.orig/test/testscanw.c
+--- ncurses-5.3/test/testscanw.c Sat Jun 29 18:32:18 2002
++++ ncurses-5.3.20030906.orig/test/testscanw.c Tue May 13 20:08:23 2003
+@@ -2,10 +2,9 @@
+ * Date: 1997/03/17
+ * From: bayern@morpheus.cis.yale.edu
+ *
+- * $Id: testscanw.c,v 1.9 2002/06/29 23:32:18 tom Exp $
++ * $Id: testscanw.c,v 1.10 2002/10/19 22:11:24 tom Exp $
+ */
+ #include <test.priv.h>
+-#include <ctype.h>
+
+ int
+ main(int argc, char *argv[])
+diff -urNd -urNd ncurses-5.3/test/view.c ncurses-5.3.20030906.orig/test/view.c
+--- ncurses-5.3/test/view.c Sat Jun 29 18:28:27 2002
++++ ncurses-5.3.20030906.orig/test/view.c Sun Jul 20 14:02:08 2003
+@@ -23,10 +23,9 @@
+ * scroll operation worked, and the refresh() code only had to do a
+ * partial repaint.
+ *
+- * $Id: view.c,v 1.53 2002/06/29 23:28:27 tom Exp $
++ * $Id: view.c,v 1.57 2003/05/17 21:58:43 tom Exp $
+ */
+
+-#include <ctype.h>
+ #include <time.h>
+
+ #include <test.priv.h>
+@@ -54,7 +53,7 @@
+ static RETSIGTYPE finish(int sig) GCC_NORETURN;
+ static void show_all(const char *tag);
+
+-#if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZETERM
++#if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZE_TERM
+ #define CAN_RESIZE 1
+ #else
+ #define CAN_RESIZE 0
+@@ -496,14 +495,17 @@
+ clrtoeol();
+ if ((s = lptr[i - 1]) != 0) {
+ int len = ch_len(s);
+- if (len > shift)
++ if (len > shift) {
+ #if USE_WIDEC_SUPPORT
+ add_wchstr(s + shift);
+ #else
+ addchstr(s + shift);
+ #endif
++ }
++#if defined(NCURSES_VERSION) || defined(HAVE_WCHGAT)
+ if (try_color)
+ wchgat(stdscr, -1, A_NORMAL, my_pair, NULL);
++#endif
+ }
+ }
+ setscrreg(1, LINES - 1);
diff --git a/recipes/ncurses/ncurses/configure.patch b/recipes/ncurses/ncurses/configure.patch
new file mode 100644
index 0000000000..992e81008f
--- /dev/null
+++ b/recipes/ncurses/ncurses/configure.patch
@@ -0,0 +1,193 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- ncurses-5.3/./configure.in~configure
++++ ncurses-5.3/./configure.in
+@@ -34,9 +34,10 @@
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20020210)
++AC_PREREQ(2.57)
+ AC_REVISION($Revision: 1.297 $)
+-AC_INIT(ncurses/base/lib_initscr.c)
++AC_INIT
++AC_CONFIG_SRCDIR([ncurses/base/lib_initscr.c])
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+
+ CF_SUBST_NCURSES_VERSION
+@@ -45,7 +46,7 @@
+ [AC_MSG_WARN(overriding ABI version to $withval)
+ cf_cv_abi_version=$withval])
+
+-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
++CF_CHECK_CACHE([AC_CANONICAL_TARGET([])])
+ AC_ARG_WITH(system-type,
+ [ --with-system-type=XXX test: override derived host system-type],
+ [AC_MSG_WARN(overriding system type to $withval)
+@@ -110,7 +111,7 @@
+ CF_GXX_VERSION
+ case $GXX_VERSION in
+ 1*|2.[[0-6]]*)
+- GXX=""; CXX=""; ac_cv_prog_gxx=no
++ GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
+ cf_cxx_library=no
+ AC_MSG_WARN(templates do not work)
+ ;;
+@@ -370,7 +371,7 @@
+ if test "$CC_SHARED_OPTS" = "unknown"; then
+ for model in $cf_list_models; do
+ if test "$model" = "shared"; then
+- AC_ERROR(Shared libraries are not supported in this version)
++ AC_MSG_ERROR([Shared libraries are not supported in this version])
+ fi
+ done
+ fi
+@@ -457,7 +458,7 @@
+ AC_ARG_ENABLE(big-core,
+ [ --disable-big-core assume machine has little memory],
+ [with_big_core=$enableval],
+- [AC_TRY_RUN([
++ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <stdlib.h>
+ #include <string.h>
+ int main() {
+@@ -466,10 +467,7 @@
+ if (s != 0)
+ s[0] = s[n-1] = 0;
+ exit(s == 0);
+-}],
+- [with_big_core=yes],
+- [with_big_core=no],
+- [with_big_core=no])])
++}]])],[with_big_core=yes],[with_big_core=no],[with_big_core=no])])
+ AC_MSG_RESULT($with_big_core)
+ test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
+
+@@ -484,7 +482,7 @@
+ if test "$with_termcap" != "yes" ; then
+ if test "$use_database" = no ; then
+ if test -z "$with_fallback" ; then
+- AC_ERROR(You have disabled the database w/o specifying fallbacks)
++ AC_MSG_ERROR([You have disabled the database w/o specifying fallbacks])
+ fi
+ fi
+ AC_DEFINE(PURE_TERMINFO)
+@@ -903,7 +901,7 @@
+ AC_SUBST(MATH_LIB)
+
+ ### Checks for header files.
+-AC_STDC_HEADERS
++AC_HEADER_STDC([])
+ AC_HEADER_DIRENT
+ AC_HEADER_TIME
+ CF_REGEX
+@@ -937,7 +935,7 @@
+ CF_SYS_TIME_SELECT
+
+ ### checks for compiler characteristics
+-AC_LANG_C
++AC_LANG([C])
+ AC_C_CONST
+ AC_C_INLINE
+ test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
+@@ -1012,7 +1010,7 @@
+
+ # Check for C++ compiler characteristics (and ensure that it's there!)
+ if test -n "$CXX" ; then
+- AC_LANG_CPLUSPLUS
++ AC_LANG([C++])
+ CF_STDCPP_LIBRARY
+
+ case $GXX_VERSION in
+@@ -1286,15 +1284,16 @@
+
+ ################################################################################
+ test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+-AC_OUTPUT( \
++AC_CONFIG_FILES([\
+ include/MKterm.h.awk \
+ include/curses.head:include/curses.h.in \
+ include/termcap.h \
+ include/unctrl.h \
+ $SUB_MAKEFILES \
+- Makefile,[
++ Makefile])
++AC_CONFIG_COMMANDS([default],[[
+ CF_LIB_RULES
+-],[
++]],[[
+ ### Special initialization commands, used to pass information from the
+ ### configuration-run into config.status
+
+@@ -1324,5 +1323,6 @@
+ cf_with_cxx_binding="$cf_with_cxx_binding"
+ host="$host"
+
+-],cat)dnl
++]])
++AC_OUTPUTdnl
+ ${MAKE-make} preinstall
+--- ncurses-5.3/./test/configure.in~configure
++++ ncurses-5.3/./test/configure.in
+@@ -38,8 +38,9 @@
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20020210)
+-AC_INIT(ncurses.c)
++AC_PREREQ(2.57)
++AC_INIT
++AC_CONFIG_SRCDIR([ncurses.c])
+ AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
+
+ CF_INHERIT_SCRIPT(config.guess)
+@@ -129,7 +130,7 @@
+
+ AC_TYPE_SIGNAL
+
+-AC_STDC_HEADERS
++AC_HEADER_STDC([])
+ AC_HEADER_TIME
+ AC_CHECK_HEADERS( \
+ form.h \
+@@ -160,9 +161,8 @@
+ wresize \
+ )
+
+-AC_TRY_LINK([
+-#include <${cf_cv_ncurses_header-curses.h}>],
+-[
++AC_LINK_IFELSE([AC_LANG_PROGRAM([[
++#include <${cf_cv_ncurses_header-curses.h}>]], [[
+ (void) assume_default_colors (0, 0);
+ (void) curses_version ();
+ (void) define_key (0, 0);
+@@ -175,7 +175,7 @@
+ (void) use_default_colors ();
+ (void) use_extended_names (0);
+ (void) wresize (0, 0, 0);
+- ],[AC_DEFINE(NCURSES_EXT_FUNCS)])
++ ]])],[AC_DEFINE(NCURSES_EXT_FUNCS)],[])
+
+ CF_SYS_TIME_SELECT
+ CF_FUNC_CURSES_VERSION
+@@ -186,7 +186,8 @@
+
+ dnl ---------------------------------------------------------------------------
+
+-AC_OUTPUT(Makefile,[
++AC_CONFIG_FILES([Makefile])
++AC_CONFIG_COMMANDS([default],[[
+ cat >>Makefile <<TEST_EOF
+
+ # These rules are generated so we do not rely on suffix rules, which do not
+@@ -204,4 +205,5 @@
+ @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
+ TEST_EOF
+ done
+-],[],sort)
++]],[[]])
++AC_OUTPUT
diff --git a/recipes/ncurses/ncurses/makefile_tweak.patch b/recipes/ncurses/ncurses/makefile_tweak.patch
new file mode 100644
index 0000000000..480855bcc6
--- /dev/null
+++ b/recipes/ncurses/ncurses/makefile_tweak.patch
@@ -0,0 +1,89 @@
+Libtool 2.2.2 needs to be able to use top_builddir. Automake usually exports
+this but ncurses doesn't use automake.
+
+RP 14/4/08
+
+Index: ncurses-5.4/ncurses/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/ncurses/Makefile.in 2008-04-14 12:22:34.000000000 +0100
++++ ncurses-5.4/ncurses/Makefile.in 2008-04-14 12:22:53.000000000 +0100
+@@ -57,6 +57,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ top_srcdir = @top_srcdir@
++top_builddir = @top_srcdir@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+Index: ncurses-5.4/form/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/form/Makefile.in 2008-04-14 12:30:35.000000000 +0100
++++ ncurses-5.4/form/Makefile.in 2008-04-14 12:30:59.000000000 +0100
+@@ -51,6 +51,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/menu/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/menu/Makefile.in 2008-04-14 12:29:00.000000000 +0100
++++ ncurses-5.4/menu/Makefile.in 2008-04-14 12:29:13.000000000 +0100
+@@ -51,6 +51,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/panel/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/panel/Makefile.in 2008-04-14 12:27:40.000000000 +0100
++++ ncurses-5.4/panel/Makefile.in 2008-04-14 12:27:59.000000000 +0100
+@@ -51,6 +51,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/progs/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/progs/Makefile.in 2008-04-14 12:24:37.000000000 +0100
++++ ncurses-5.4/progs/Makefile.in 2008-04-14 12:25:06.000000000 +0100
+@@ -54,6 +54,7 @@
+ MODEL = ../@DFT_OBJ_SUBDIR@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/tack/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/tack/Makefile.in 2008-04-14 12:26:05.000000000 +0100
++++ ncurses-5.4/tack/Makefile.in 2008-04-14 12:26:26.000000000 +0100
+@@ -22,6 +22,7 @@
+ MODEL = ../@DFT_OBJ_SUBDIR@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/test/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/test/Makefile.in 2008-04-14 12:32:37.000000000 +0100
++++ ncurses-5.4/test/Makefile.in 2008-04-14 12:32:56.000000000 +0100
+@@ -43,6 +43,7 @@
+
+ MODEL = ../@DFT_OBJ_SUBDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ libdir = @libdir@
diff --git a/recipes/ncurses/ncurses/mk_shared_lib.patch b/recipes/ncurses/ncurses/mk_shared_lib.patch
new file mode 100644
index 0000000000..1e2ea6a028
--- /dev/null
+++ b/recipes/ncurses/ncurses/mk_shared_lib.patch
@@ -0,0 +1,27 @@
+
+#
+# Made by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- ncurses-4.2/aclocal.m4~mk_sharedlib
++++ ncurses-4.2/aclocal.m4
+@@ -1201,7 +1201,7 @@
+ linux*)
+ # tested with Linux 2.0.29 and gcc 2.7.2 (ELF)
+ CC_SHARED_OPTS='-fPIC'
+- MK_SHARED_LIB='gcc -o $[@].$(REL_VERSION) -L../lib -L\$(libdir) -shared -Wl,-soname,`basename $[@].$(ABI_VERSION)`,-stats,$(SHLIB_LIST)-lc'
++ MK_SHARED_LIB='$(CC) -o $[@].$(REL_VERSION) -L../lib -shared -Wl,-soname,`basename $[@].$(ABI_VERSION)`,-stats,$(SHLIB_LIST)-lc'
+ test $cf_cv_ld_rpath = yes && cf_ld_rpath_opt="-Wl,-rpath,"
+ if test $DFT_LWR_MODEL = "shared" ; then
+ LOCAL_LDFLAGS='-Wl,-rpath,../lib'
+--- ncurses-4.2/configure~mk_sharedlib
++++ ncurses-4.2/configure
+@@ -2216,7 +2216,7 @@
+ linux*)
+ # tested with Linux 2.0.29 and gcc 2.7.2 (ELF)
+ CC_SHARED_OPTS='-fPIC'
+- MK_SHARED_LIB='gcc -o $@.$(REL_VERSION) -L../lib -L\$(libdir) -shared -Wl,-soname,`basename $@.$(ABI_VERSION)`,-stats,$(SHLIB_LIST)-lc'
++ MK_SHARED_LIB='$(CC) -o $@.$(REL_VERSION) -L../lib -shared -Wl,-soname,`basename $@.$(ABI_VERSION)`,-stats,$(SHLIB_LIST)-lc'
+ test $cf_cv_ld_rpath = yes && cf_ld_rpath_opt="-Wl,-rpath,"
+ if test $DFT_LWR_MODEL = "shared" ; then
+ LOCAL_LDFLAGS='-Wl,-rpath,../lib'
diff --git a/recipes/ncurses/ncurses/run_tic.patch b/recipes/ncurses/ncurses/run_tic.patch
new file mode 100644
index 0000000000..bebf8d4018
--- /dev/null
+++ b/recipes/ncurses/ncurses/run_tic.patch
@@ -0,0 +1,23 @@
+
+#
+# Made by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- ncurses-4.2/misc/run_tic.sh~run_tic
++++ ncurses-4.2/misc/run_tic.sh
+@@ -108,7 +108,14 @@
+ SRC=$TMP
+ fi
+
+-if ( $srcdir/shlib tic -s $SRC )
++if [ "$HOSTCC" != "$CC" ]
++then
++ SHLIB=""
++else
++ SHLIB="$srcdir/shlib"
++fi
++
++if ( ${SHLIB} tic -s $SRC )
+ then
+ echo '** built new '$TERMINFO
+ else
diff --git a/recipes/ncurses/ncurses/tic.patch b/recipes/ncurses/ncurses/tic.patch
new file mode 100644
index 0000000000..b09da4cd0c
--- /dev/null
+++ b/recipes/ncurses/ncurses/tic.patch
@@ -0,0 +1,19 @@
+--- ncurses-5.2/misc/run_tic.in Mon Oct 9 16:57:35 2000
++++ ncurses-5.2/misc/run_tic.in.new Thu Mar 14 17:13:20 2002
+@@ -105,7 +105,15 @@
+ problems for older ncurses applications.
+
+ EOF
+-if ( $srcdir/shlib tic$suffix -s -o $TERMINFO $source )
++
++if [ "$BUILD_CC" != "$CC" ]
++then
++ SHLIB=""
++else
++ SHLIB="$srcdir/shlib"
++fi
++
++if ( ${SHLIB} tic$suffix -s -o $TERMINFO $source )
+ then
+ echo '** built new '$TERMINFO
+ else
diff --git a/recipes/ncurses/ncurses/visibility.patch b/recipes/ncurses/ncurses/visibility.patch
new file mode 100644
index 0000000000..29cac5f1b8
--- /dev/null
+++ b/recipes/ncurses/ncurses/visibility.patch
@@ -0,0 +1,4904 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- ncurses-5.4/ncurses/Makefile.in~visibility.patch
++++ ncurses-5.4/ncurses/Makefile.in
+@@ -107,7 +107,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/panel/Makefile.in~visibility.patch
++++ ncurses-5.4/panel/Makefile.in
+@@ -88,7 +88,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/menu/Makefile.in~visibility.patch
++++ ncurses-5.4/menu/Makefile.in
+@@ -87,7 +87,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/c++/Makefile.in~visibility.patch
++++ ncurses-5.4/c++/Makefile.in
+@@ -80,7 +80,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CXX_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/form/Makefile.in~visibility.patch
++++ ncurses-5.4/form/Makefile.in
+@@ -88,7 +88,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/configure.in~visibility.patch
++++ ncurses-5.4/configure.in
+@@ -34,17 +34,20 @@
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20020210)
++AC_PREREQ(2.59)
+ AC_REVISION($Revision: 1.312 $)
+-AC_INIT(ncurses/base/lib_initscr.c)
++AC_INIT
++AC_CONFIG_SRCDIR([ncurses/base/lib_initscr.c])
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+
++m4_include([m4/templates.m4])
++
+ CF_SUBST_NCURSES_VERSION
+
+ CF_WITH_REL_VERSION(NCURSES)
+ CF_WITH_ABI_VERSION
+
+-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
++CF_CHECK_CACHE([AC_CANONICAL_TARGET([])])
+ AC_ARG_WITH(system-type,
+ [ --with-system-type=XXX test: override derived host system-type],
+ [AC_MSG_WARN(overriding system type to $withval)
+@@ -100,7 +103,7 @@
+ CF_GXX_VERSION
+ case $GXX_VERSION in
+ 1*|2.[[0-6]]*)
+- GXX=""; CXX=""; ac_cv_prog_gxx=no
++ GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
+ cf_cxx_library=no
+ AC_MSG_WARN(templates do not work)
+ ;;
+@@ -176,7 +179,6 @@
+ AC_SUBST(DESTDIR)
+
+ ###############################################################################
+-CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:)
+ # If we're cross-compiling, allow the user to override the tools and their
+ # options. The configure script is oriented toward identifying the host
+ # compiler, etc., but we need a build compiler to generate parts of the source.
+@@ -213,7 +215,6 @@
+ AC_SUBST(BUILD_EXEEXT)
+
+ ###############################################################################
+-CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
+
+ ### Options to allow the user to specify the set of libraries which are used.
+ ### Use "--without-normal --with-shared" to allow the default model to be
+@@ -343,11 +344,11 @@
+
+ AC_MSG_CHECKING(for default loader flags)
+ case $DFT_LWR_MODEL in
+-libtool) LD_MODEL='' ;;
++libtool) LD_MODEL=''; LIBOPTS="-DNCURSES_DLL" ;;
+ normal) LD_MODEL='' ;;
+ debug) LD_MODEL=$CC_G_OPT ;;
+ profile) LD_MODEL='-pg';;
+-shared) LD_MODEL='' ;;
++shared) LD_MODEL=''; LIBOPTS="-DNCURSES_DLL" ;;
+ esac
+ AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
+ AC_MSG_RESULT($LD_MODEL)
+@@ -363,14 +364,14 @@
+ if test "$CC_SHARED_OPTS" = "unknown"; then
+ for model in $cf_list_models; do
+ if test "$model" = "shared"; then
+- AC_ERROR(Shared libraries are not supported in this version)
++ AC_MSG_ERROR([Shared libraries are not supported in this version])
+ fi
+ done
+ fi
+
+-###############################################################################
+-CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
++AC_SUBST(LIBOPTS)
+
++###############################################################################
+ ### use option --disable-overwrite to leave out the link to -lcurses
+ AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
+ AC_ARG_ENABLE(overwrite,
+@@ -450,7 +451,7 @@
+ AC_ARG_ENABLE(big-core,
+ [ --disable-big-core assume machine has little memory],
+ [with_big_core=$enableval],
+- [AC_TRY_RUN([
++ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <stdlib.h>
+ #include <string.h>
+ int main() {
+@@ -459,10 +460,7 @@
+ if (s != 0)
+ s[0] = s[n-1] = 0;
+ exit(s == 0);
+-}],
+- [with_big_core=yes],
+- [with_big_core=no],
+- [with_big_core=no])])
++}]])],[with_big_core=yes],[with_big_core=no],[with_big_core=no])])
+ AC_MSG_RESULT($with_big_core)
+ test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
+
+@@ -477,7 +475,7 @@
+ if test "$with_termcap" != "yes" ; then
+ if test "$use_database" = no ; then
+ if test -z "$with_fallback" ; then
+- AC_ERROR(You have disabled the database w/o specifying fallbacks)
++ AC_MSG_ERROR([You have disabled the database w/o specifying fallbacks])
+ fi
+ fi
+ AC_DEFINE(PURE_TERMINFO)
+@@ -614,10 +612,10 @@
+ test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
+
+ ###############################################################################
++
+ CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ])
+
+ ###############################################################################
+-CF_HELP_MESSAGE(Extensions:)
+
+ ### Note that some functions (such as const) are normally disabled anyway.
+ AC_MSG_CHECKING(if you want to build with function extensions)
+@@ -683,7 +681,6 @@
+
+ ###############################################################################
+ # These options are relatively safe to experiment with.
+-CF_HELP_MESSAGE(Development Code:)
+ AC_MSG_CHECKING(if you want all development code)
+ AC_ARG_WITH(develop,
+ [ --with-develop enable all development options],
+@@ -719,7 +716,6 @@
+
+ ###############################################################################
+ # These are just experimental, probably should not be in a package:
+-CF_HELP_MESSAGE(Experimental Code:)
+
+ AC_MSG_CHECKING(if you do not want to assume colors are white-on-black)
+ AC_ARG_ENABLE(assumed-color,
+@@ -828,7 +824,6 @@
+ AC_SUBST(TERMINFO_CAPS)
+
+ ###############################################################################
+-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)
+@@ -931,7 +926,7 @@
+ AC_SUBST(MATH_LIB)
+
+ ### Checks for header files.
+-AC_STDC_HEADERS
++AC_HEADER_STDC([])
+ AC_HEADER_DIRENT
+ AC_HEADER_TIME
+ CF_REGEX
+@@ -965,7 +960,7 @@
+ CF_SYS_TIME_SELECT
+
+ ### checks for compiler characteristics
+-AC_LANG_C
++AC_LANG([C])
+ AC_C_CONST
+ AC_C_INLINE
+ test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
+@@ -1040,7 +1035,7 @@
+
+ # Check for C++ compiler characteristics (and ensure that it's there!)
+ if test -n "$CXX" ; then
+- AC_LANG_CPLUSPLUS
++ AC_LANG([C++])
+ CF_STDCPP_LIBRARY
+
+ case $GXX_VERSION in
+@@ -1135,7 +1130,6 @@
+ fi
+ AC_SUBST(USE_CXX_BOOL)
+
+-CF_HELP_MESSAGE(Ada95 Binding Options:)
+
+ dnl Check for availability of GNU Ada Translator (GNAT).
+ dnl At the moment we support no other Ada95 compiler.
+@@ -1309,15 +1303,16 @@
+
+ ################################################################################
+ test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+-AC_OUTPUT( \
++AC_CONFIG_FILES([\
+ include/MKterm.h.awk \
+ include/curses.head:include/curses.h.in \
+ include/termcap.h \
+ include/unctrl.h \
+ $SUB_MAKEFILES \
+- Makefile,[
++ Makefile])
++AC_CONFIG_COMMANDS([default],[
+ CF_LIB_RULES
+-],[
++],[[
+ ### Special initialization commands, used to pass information from the
+ ### configuration-run into config.status
+
+@@ -1348,5 +1343,6 @@
+ host="$host"
+ target="$target"
+
+-],cat)dnl
++]])
++AC_OUTPUT
+ ${MAKE-make} preinstall
+--- ncurses-5.4/include/ncurses_dll.h~visibility.patch
++++ ncurses-5.4/include/ncurses_dll.h
+@@ -7,8 +7,8 @@
+ /* but this structure may be useful at some point for an MSVC build */
+ /* so, for now unconditionally define the important flags */
+ /* "the right way" for proper static and dll+auto-import behavior */
+-#undef NCURSES_DLL
+-#define NCURSES_STATIC
++//#undef NCURSES_DLL
++//#define NCURSES_STATIC
+
+ #if defined(__CYGWIN__)
+ # if defined(NCURSES_DLL)
+@@ -32,12 +32,20 @@
+ # endif
+ # define NCURSES_API __cdecl
+ # define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+-# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
++# define NCURSES_EXPORT_VAR(var) var NCURSES_IMPEXP
+ #endif
+
+ /* Take care of non-cygwin platforms */
+ #if !defined(NCURSES_IMPEXP)
+-# define NCURSES_IMPEXP /* nothing */
++# if defined(GCC_HASCLASSVISIBILITY)
++# if defined(NCURSES_DLL)
++# define NCURSES_IMPEXP __attribute__ ((visibility("default")))
++# else
++# define NCURSES_IMPEXP /* nothing */
++# endif
++# else
++# define NCURSES_IMPEXP /* nothing */
++# endif
+ #endif
+ #if !defined(NCURSES_API)
+ # define NCURSES_API /* nothing */
+@@ -46,7 +54,7 @@
+ # define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+ #endif
+ #if !defined(NCURSES_EXPORT_VAR)
+-# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
++# define NCURSES_EXPORT_VAR(var) var NCURSES_IMPEXP
+ #endif
+
+ #endif /* NCURSES_DLL_H_incl */
+--- ncurses-5.4/form/fty_alnum.c~visibility.patch
++++ ncurses-5.4/form/fty_alnum.c
+@@ -132,6 +132,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeALNUM;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_ALNUM) = &typeALNUM;
+
+ /* fty_alnum.c ends here */
+--- ncurses-5.4/form/fty_alpha.c~visibility.patch
++++ ncurses-5.4/form/fty_alpha.c
+@@ -133,6 +133,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeALPHA;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_ALPHA) = &typeALPHA;
+
+ /* fty_alpha.c ends here */
+--- ncurses-5.4/form/fld_newftyp.c~visibility.patch
++++ ncurses-5.4/form/fld_newftyp.c
+@@ -48,7 +48,7 @@
+ NULL /* enumerate previous function */
+ };
+
+-NCURSES_EXPORT_VAR(const FIELDTYPE*) _nc_Default_FieldType = &default_fieldtype;
++const FIELDTYPE* NCURSES_EXPORT_VAR(_nc_Default_FieldType) = &default_fieldtype;
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+--- ncurses-5.4/form/form.h~visibility.patch
++++ ncurses-5.4/form/form.h
+@@ -248,24 +248,24 @@
+ /*************************
+ * standard field types *
+ *************************/
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_ALPHA);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_ALNUM);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_ENUM);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_INTEGER);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_NUMERIC);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_REGEXP);
+
+ /************************************
+ * built-in additional field types *
+ * They are not defined in SVr4 *
+ ************************************/
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_IPV4); /* Internet IP Version 4 address */
+
+ /***********************
+ * Default objects *
+ ***********************/
+-extern NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form;
+-extern NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field;
++extern FORM * NCURSES_EXPORT_VAR(_nc_Default_Form);
++extern FIELD * NCURSES_EXPORT_VAR(_nc_Default_Field);
+
+
+ /***********************
+--- ncurses-5.4/form/fty_int.c~visibility.patch
++++ ncurses-5.4/form/fty_int.c
+@@ -155,6 +155,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeINTEGER;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_INTEGER) = &typeINTEGER;
+
+ /* fty_int.c ends here */
+--- ncurses-5.4/form/fty_num.c~visibility.patch
++++ ncurses-5.4/form/fty_num.c
+@@ -190,6 +190,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeNUMERIC;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_NUMERIC) = &typeNUMERIC;
+
+ /* fty_num.c ends here */
+--- ncurses-5.4/form/fty_regex.c~visibility.patch
++++ ncurses-5.4/form/fty_regex.c
+@@ -252,6 +252,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_REGEXP) = &typeREGEXP;
+
+ /* fty_regex.c ends here */
+--- ncurses-5.4/form/frm_def.c~visibility.patch
++++ ncurses-5.4/form/frm_def.c
+@@ -60,7 +60,7 @@
+ NULL /* fieldterm */
+ };
+
+-NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
++FORM * NCURSES_EXPORT_VAR(_nc_Default_Form) = &default_form;
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+--- ncurses-5.4/form/fld_def.c~visibility.patch
++++ ncurses-5.4/form/fld_def.c
+@@ -63,7 +63,7 @@
+ (char *)0 /* usrptr */
+ };
+
+-NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
++FIELD * NCURSES_EXPORT_VAR(_nc_Default_Field) = &default_field;
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+--- ncurses-5.4/form/fty_enum.c~visibility.patch
++++ ncurses-5.4/form/fty_enum.c
+@@ -290,6 +290,6 @@
+ Previous_Enum
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ENUM = &typeENUM;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_ENUM) = &typeENUM;
+
+ /* fty_enum.c ends here */
+--- ncurses-5.4/form/fty_ipv4.c~visibility.patch
++++ ncurses-5.4/form/fty_ipv4.c
+@@ -76,6 +76,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_IPV4) = &typeIPV4;
+
+ /* fty_ipv4.c ends here */
+--- ncurses-5.4/form/form.priv.h~visibility.patch
++++ ncurses-5.4/form/form.priv.h
+@@ -112,7 +112,7 @@
+ #define C_BLANK ' '
+ #define is_blank(c) ((c)==C_BLANK)
+
+-extern NCURSES_EXPORT_VAR(const FIELDTYPE *) _nc_Default_FieldType;
++extern const FIELDTYPE * NCURSES_EXPORT_VAR(_nc_Default_FieldType);
+
+ extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*,va_list*,int*);
+ extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*,const TypeArgument*, int*);
+--- ncurses-5.4/include/tic.h~visibility.patch
++++ ncurses-5.4/include/tic.h
+@@ -117,7 +117,7 @@
+ #define DEBUG(n, a) /*nothing*/
+ #endif
+
+-extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
++extern unsigned NCURSES_EXPORT_VAR(_nc_tracing);
+ extern NCURSES_EXPORT(void) _nc_tracef (char *, ...) GCC_PRINTFLIKE(1,2);
+ extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+ extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
+@@ -151,7 +151,7 @@
+ char *tk_valstring; /* value of capability (if a string) */
+ };
+
+-extern NCURSES_EXPORT_VAR(struct token) _nc_curr_token;
++extern struct token NCURSES_EXPORT_VAR(_nc_curr_token);
+
+ /*
+ * List of keynames with their corresponding code.
+@@ -161,7 +161,7 @@
+ int code;
+ };
+
+-extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[];
++extern const struct kn NCURSES_EXPORT_VAR(_nc_key_names[]);
+
+ /*
+ * Offsets to string capabilities, with the corresponding functionkey
+@@ -179,7 +179,7 @@
+
+ #else
+
+-extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[];
++extern struct tinfo_fkeys NCURSES_EXPORT_VAR(_nc_tinfo_fkeys[]);
+
+ #endif
+
+@@ -204,11 +204,11 @@
+ const char *source;
+ };
+
+-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
+-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
++extern const struct name_table_entry * const NCURSES_EXPORT_VAR(_nc_info_hash_table[]);
++extern const struct name_table_entry * const NCURSES_EXPORT_VAR(_nc_cap_hash_table[]);
+
+-extern NCURSES_EXPORT_VAR(const struct alias) _nc_capalias_table[];
+-extern NCURSES_EXPORT_VAR(const struct alias) _nc_infoalias_table[];
++extern const struct alias NCURSES_EXPORT_VAR(_nc_capalias_table[]);
++extern const struct alias NCURSES_EXPORT_VAR(_nc_infoalias_table[]);
+
+ extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool);
+ extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool);
+@@ -255,13 +255,13 @@
+ extern NCURSES_EXPORT(void) _nc_panic_mode (char);
+ extern NCURSES_EXPORT(void) _nc_push_token (int);
+ extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *);
+-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(long) _nc_comment_end;
+-extern NCURSES_EXPORT_VAR(long) _nc_comment_start;
+-extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos;
+-extern NCURSES_EXPORT_VAR(long) _nc_start_line;
++extern int NCURSES_EXPORT_VAR(_nc_curr_col);
++extern int NCURSES_EXPORT_VAR(_nc_curr_line);
++extern int NCURSES_EXPORT_VAR(_nc_syntax);
++extern long NCURSES_EXPORT_VAR(_nc_comment_end);
++extern long NCURSES_EXPORT_VAR(_nc_comment_start);
++extern long NCURSES_EXPORT_VAR(_nc_curr_file_pos);
++extern long NCURSES_EXPORT_VAR(_nc_start_line);
+ #define SYN_TERMINFO 0
+ #define SYN_TERMCAP 1
+
+@@ -272,7 +272,7 @@
+ extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+ extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+ extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2);
+-extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
++extern bool NCURSES_EXPORT_VAR(_nc_suppress_warnings);
+
+ /* comp_expand.c: expand string into readable form */
+ extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
+@@ -287,12 +287,12 @@
+ /* lib_tparm.c */
+ #define NUM_PARM 9
+
+-extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
++extern int NCURSES_EXPORT_VAR(_nc_tparm_err);
+
+ extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount);
+
+ /* lib_tputs.c */
+-extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */
++extern int NCURSES_EXPORT_VAR(_nc_nulls_sent); /* Add one for every null sent */
+
+ /* comp_main.c: compiler main */
+ extern const char * _nc_progname;
+--- ncurses-5.4/include/MKterm.h.awk.in~visibility.patch
++++ ncurses-5.4/include/MKterm.h.awk.in
+@@ -228,9 +228,9 @@
+ print " char * _termname; /* used for termname() */"
+ print "} TERMINAL;"
+ print ""
+- print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
++ print "extern TERMINAL * NCURSES_EXPORT_VAR(cur_term);"
+ print ""
+- print "#if BROKEN_LINKER"
++ print "#if defined(BROKEN_LINKER)"
+ print "#define boolnames _nc_boolnames()"
+ print "#define boolcodes _nc_boolcodes()"
+ print "#define boolfnames _nc_boolfnames()"
+@@ -253,15 +253,15 @@
+ print ""
+ print "#else"
+ print ""
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(boolnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(boolcodes[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(boolfnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(numnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(numcodes[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(numfnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(strnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(strcodes[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(strfnames[]);"
+ print ""
+ print "#endif"
+ print ""
+@@ -287,7 +287,7 @@
+ print "#if !defined(__NCURSES_H)"
+ print "extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);"
+ print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);"
+- print "extern NCURSES_EXPORT_VAR(char) ttytype[];"
++ print "extern char NCURSES_EXPORT_VAR(ttytype[]);"
+ print "extern NCURSES_EXPORT(int) putp (const char *);"
+ print "extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);"
+ print "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
+--- ncurses-5.4/include/termcap.h.in~visibility.patch
++++ ncurses-5.4/include/termcap.h.in
+@@ -54,10 +54,10 @@
+ #undef NCURSES_OSPEED
+ #define NCURSES_OSPEED @NCURSES_OSPEED@
+
+-extern NCURSES_EXPORT_VAR(char) PC;
+-extern NCURSES_EXPORT_VAR(char *) UP;
+-extern NCURSES_EXPORT_VAR(char *) BC;
+-extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed;
++extern char NCURSES_EXPORT_VAR(PC);
++extern char * NCURSES_EXPORT_VAR(UP);
++extern char * NCURSES_EXPORT_VAR(BC);
++extern NCURSES_OSPEED NCURSES_EXPORT_VAR(ospeed);
+
+ #if !defined(NCURSES_TERM_H_incl)
+ extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
+--- ncurses-5.4/include/term_entry.h~visibility.patch
++++ ncurses-5.4/include/term_entry.h
+@@ -90,8 +90,8 @@
+ #define ExtNumname(tp,i,names) EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names)
+ #define ExtStrname(tp,i,names) EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names)
+
+-extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head;
+-extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
++extern ENTRY * NCURSES_EXPORT_VAR(_nc_head);
++extern ENTRY * NCURSES_EXPORT_VAR(_nc_tail);
+ #define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next)
+
+ #define MAX_LINE 132
+@@ -135,8 +135,8 @@
+
+ /* parse_entry.c: entry-parsing code */
+ #if NCURSES_XNAMES
+-extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
+-extern NCURSES_EXPORT_VAR(bool) _nc_disable_period;
++extern bool NCURSES_EXPORT_VAR(_nc_user_definable);
++extern bool NCURSES_EXPORT_VAR(_nc_disable_period);
+ #endif
+ extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool);
+ extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *);
+--- ncurses-5.4/include/curses.h.in~visibility.patch
++++ ncurses-5.4/include/curses.h.in
+@@ -171,8 +171,8 @@
+ #define WA_VERTICAL A_VERTICAL
+
+ /* colors */
+-extern NCURSES_EXPORT_VAR(int) COLORS;
+-extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
++extern int NCURSES_EXPORT_VAR(COLORS);
++extern int NCURSES_EXPORT_VAR(COLOR_PAIRS);
+
+ #define COLOR_BLACK 0
+ #define COLOR_RED 1
+@@ -186,10 +186,10 @@
+ /* line graphics */
+
+ #if @BROKEN_LINKER@
+-extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
++extern chtype* NCURSES_EXPORT_VAR(_nc_acs_map)(void);
+ #define acs_map (_nc_acs_map())
+ #else
+-extern NCURSES_EXPORT_VAR(chtype) acs_map[];
++extern chtype NCURSES_EXPORT_VAR(acs_map[]);
+ #endif
+
+ #define NCURSES_ACS(c) (acs_map[(unsigned char)c])
+@@ -369,20 +369,20 @@
+ #endif
+ };
+
+-extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
+-extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
+-extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
++extern WINDOW * NCURSES_EXPORT_VAR(stdscr);
++extern WINDOW * NCURSES_EXPORT_VAR(curscr);
++extern WINDOW * NCURSES_EXPORT_VAR(newscr);
+
+-extern NCURSES_EXPORT_VAR(int) LINES;
+-extern NCURSES_EXPORT_VAR(int) COLS;
+-extern NCURSES_EXPORT_VAR(int) TABSIZE;
++extern int NCURSES_EXPORT_VAR(LINES);
++extern int NCURSES_EXPORT_VAR(COLS);
++extern int NCURSES_EXPORT_VAR(TABSIZE);
+
+ /*
+ * This global was an undocumented feature under AIX curses.
+ */
+-extern NCURSES_EXPORT_VAR(int) ESCDELAY; /* ESC expire time in milliseconds */
++extern int NCURSES_EXPORT_VAR(ESCDELAY); /* ESC expire time in milliseconds */
+
+-extern NCURSES_EXPORT_VAR(char) ttytype[]; /* needed for backward compatibility */
++extern char NCURSES_EXPORT_VAR(ttytype[]); /* needed for backward compatibility */
+
+ /*
+ * These functions are extensions - not in XSI Curses.
+--- ncurses-5.4/include/curses.tail~visibility.patch
++++ ncurses-5.4/include/curses.tail
+@@ -110,7 +110,7 @@
+ #define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */
+
+ #if defined(TRACE) || defined(NCURSES_TEST)
+-extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */
++extern int NCURSES_EXPORT_VAR(_nc_optimize_enable); /* enable optimizations */
+ #ifdef _XOPEN_SOURCE_EXTENDED
+ extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+ #endif
+--- ncurses-5.4/include/curses.wide~visibility.patch
++++ ncurses-5.4/include/curses.wide
+@@ -3,7 +3,7 @@
+
+ /* $Id: curses.wide,v 1.28 2004/01/03 20:35:14 tom Exp $ */
+
+-extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
++extern cchar_t * NCURSES_EXPORT_VAR(_nc_wacs);
+
+ #define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
+
+--- ncurses-5.4/menu/menu.priv.h~visibility.patch
++++ ncurses-5.4/menu/menu.priv.h
+@@ -49,8 +49,8 @@
+ /* Backspace code */
+ #define BS (8)
+
+-extern NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item;
+-extern NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu;
++extern ITEM NCURSES_EXPORT_VAR(_nc_Default_Item);
++extern MENU NCURSES_EXPORT_VAR(_nc_Default_Menu);
+
+ /* Normalize item to default if none was given */
+ #define Normalize_Item( item ) ((item)=(item)?(item):&_nc_Default_Item)
+--- ncurses-5.4/menu/m_global.c~visibility.patch
++++ ncurses-5.4/menu/m_global.c
+@@ -41,7 +41,7 @@
+
+ static char mark[] = "-";
+
+-NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu = {
++MENU NCURSES_EXPORT_VAR(_nc_Default_Menu) = {
+ 16, /* Nr. of chars high */
+ 1, /* Nr. of chars wide */
+ 16, /* Nr. of items high */
+@@ -80,7 +80,7 @@
+ 0 /* status */
+ };
+
+-NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = {
++ITEM NCURSES_EXPORT_VAR(_nc_Default_Item) = {
+ { (char *)0, 0 }, /* name */
+ { (char *)0, 0 }, /* description */
+ (MENU *)0, /* Pointer to parent menu */
+--- ncurses-5.4/ncurses/tty/lib_mvcur.c~visibility.patch
++++ ncurses-5.4/ncurses/tty/lib_mvcur.c
+@@ -937,7 +937,7 @@
+ }
+
+ #if defined(TRACE) || defined(NCURSES_TEST)
+-NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
++int NCURSES_EXPORT_VAR(_nc_optimize_enable) = OPTIMIZE_ALL;
+ #endif
+
+ #if defined(MAIN) || defined(NCURSES_TEST)
+@@ -950,7 +950,7 @@
+ #include <tic.h>
+ #include <dump_entry.h>
+
+-NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur";
++const char * NCURSES_EXPORT_VAR(_nc_progname) = "mvcur";
+
+ static unsigned long xmits;
+
+--- ncurses-5.4/ncurses/tty/hardscroll.c~visibility.patch
++++ ncurses-5.4/ncurses/tty/hardscroll.c
+@@ -151,8 +151,7 @@
+
+ # undef screen_lines
+ # define screen_lines MAXLINES
+-NCURSES_EXPORT_VAR(int)
+-oldnums[MAXLINES];
++int NCURSES_EXPORT_VAR(oldnums[MAXLINES]);
+ # define OLDNUM(n) oldnums[n]
+ # define _tracef printf
+ # undef TR
+@@ -163,8 +162,7 @@
+ /* OLDNUM(n) indicates which line will be shifted to the position n.
+ if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from
+ somewhere. */
+-NCURSES_EXPORT_VAR(int *)
+-_nc_oldnums = 0;
++int * NCURSES_EXPORT_VAR(_nc_oldnums) = 0;
+
+ # if USE_HASHMAP
+ static int oldnums_allocated = 0;
+--- ncurses-5.4/ncurses/base/lib_getch.c~visibility.patch
++++ ncurses-5.4/ncurses/base/lib_getch.c
+@@ -44,8 +44,7 @@
+
+ #include <fifo_defs.h>
+
+-NCURSES_EXPORT_VAR(int)
+-ESCDELAY = 1000; /* max interval betw. chars in funkeys, in millisecs */
++int NCURSES_EXPORT_VAR(ESCDELAY) = 1000; /* max interval betw. chars in funkeys, in millisecs */
+
+ #ifdef NCURSES_WGETCH_EVENTS
+ #define TWAIT_MASK 7
+--- ncurses-5.4/ncurses/base/lib_slk.c~visibility.patch
++++ ncurses-5.4/ncurses/base/lib_slk.c
+@@ -47,8 +47,7 @@
+ * We'd like to move these into the screen context structure, but cannot,
+ * because slk_init() is called before initscr()/newterm().
+ */
+-NCURSES_EXPORT_VAR(int)
+-_nc_slk_format = 0; /* one more than format specified in slk_init() */
++int NCURSES_EXPORT_VAR(_nc_slk_format) = 0; /* one more than format specified in slk_init() */
+
+ /*
+ * Paint the info line for the PC style SLK emulation.
+--- ncurses-5.4/ncurses/base/lib_color.c~visibility.patch
++++ ncurses-5.4/ncurses/base/lib_color.c
+@@ -48,8 +48,8 @@
+ * historical reasons. So we assign them in start_color() and also in
+ * set_term()'s screen-switching logic.
+ */
+-NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0;
+-NCURSES_EXPORT_VAR(int) COLORS = 0;
++int NCURSES_EXPORT_VAR(COLOR_PAIRS) = 0;
++int NCURSES_EXPORT_VAR(COLORS) = 0;
+
+ #define DATA(r,g,b) {r,g,b, 0,0,0, 0}
+
+--- ncurses-5.4/ncurses/tinfo/lib_termcap.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_termcap.c
+@@ -50,8 +50,8 @@
+ #define L_BRACK '['
+ #define SHIFT_OUT 017 /* ^N */
+
+-NCURSES_EXPORT_VAR(char *) UP = 0;
+-NCURSES_EXPORT_VAR(char *) BC = 0;
++char * NCURSES_EXPORT_VAR(UP) = 0;
++char * NCURSES_EXPORT_VAR(BC) = 0;
+
+ static char *fix_me = 0;
+
+--- ncurses-5.4/ncurses/tinfo/lib_cur_term.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_cur_term.c
+@@ -42,7 +42,7 @@
+
+ MODULE_ID("$Id: lib_cur_term.c,v 1.13 2003/12/27 18:21:30 tom Exp $")
+
+-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
++TERMINAL * NCURSES_EXPORT_VAR(cur_term) = 0;
+
+ NCURSES_EXPORT(TERMINAL *)
+ set_curterm(TERMINAL * termp)
+--- ncurses-5.4/ncurses/tinfo/lib_setup.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_setup.c
+@@ -91,10 +91,10 @@
+ # endif
+ #endif
+
+-NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
+-NCURSES_EXPORT_VAR(int) LINES = 0;
+-NCURSES_EXPORT_VAR(int) COLS = 0;
+-NCURSES_EXPORT_VAR(int) TABSIZE = 0;
++char NCURSES_EXPORT_VAR(ttytype[NAMESIZE]) = "";
++int NCURSES_EXPORT_VAR(LINES) = 0;
++int NCURSES_EXPORT_VAR(COLS) = 0;
++int NCURSES_EXPORT_VAR(TABSIZE) = 0;
+
+ static int _use_env = TRUE;
+
+--- ncurses-5.4/ncurses/tinfo/MKnames.awk~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/MKnames.awk
+@@ -10,7 +10,7 @@
+ print "#include <term.h>" > "namehdr"
+ print "#define DCL(it) static IT data##it[]" > "namehdr"
+ print "#else" > "namehdr"
+- print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]" > "namehdr"
++ print "#define DCL(it) IT NCURSES_EXPORT_VAR(it[])" > "namehdr"
+ print "#endif" > "namehdr"
+ print "" > "namehdr"
+ print "/*" > "boolnames"
+--- ncurses-5.4/ncurses/tinfo/lib_tparm.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_tparm.c
+@@ -115,7 +115,7 @@
+ bool num_type;
+ } stack_frame;
+
+-NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
++int NCURSES_EXPORT_VAR(_nc_tparm_err) = 0;
+
+ static stack_frame stack[STACKSIZE];
+ static int stack_ptr;
+--- ncurses-5.4/ncurses/tinfo/lib_tputs.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_tputs.c
+@@ -47,10 +47,10 @@
+
+ MODULE_ID("$Id: lib_tputs.c,v 1.62 2003/08/23 21:39:20 tom Exp $")
+
+-NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
+-NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
++char NCURSES_EXPORT_VAR(PC) = 0; /* used by termcap library */
++NCURSES_OSPEED NCURSES_EXPORT_VAR(ospeed) = 0; /* used by termcap library */
+
+-NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0; /* used by 'tack' program */
++int NCURSES_EXPORT_VAR(_nc_nulls_sent) = 0; /* used by 'tack' program */
+
+ static int (*my_outch) (int c) = _nc_outch;
+
+--- ncurses-5.4/ncurses/tinfo/comp_error.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/comp_error.c
+@@ -42,9 +42,9 @@
+
+ MODULE_ID("$Id: comp_error.c,v 1.25 2002/09/07 20:05:07 tom Exp $")
+
+-NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
+-NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
+-NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */
++bool NCURSES_EXPORT_VAR(_nc_suppress_warnings) = FALSE;
++int NCURSES_EXPORT_VAR(_nc_curr_line) = 0; /* current line # in input */
++int NCURSES_EXPORT_VAR(_nc_curr_col) = 0; /* current column # in input */
+
+ static const char *sourcename;
+ static char *termtype;
+--- ncurses-5.4/ncurses/tinfo/free_ttype.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/free_ttype.c
+@@ -92,7 +92,7 @@
+ }
+
+ #if NCURSES_XNAMES
+-NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE;
++bool NCURSES_EXPORT_VAR(_nc_user_definable) = TRUE;
+
+ NCURSES_EXPORT(int)
+ use_extended_names(bool flag)
+--- ncurses-5.4/ncurses/tinfo/comp_parse.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/comp_parse.c
+@@ -78,8 +78,8 @@
+ * _nc_head _nc_tail
+ */
+
+-NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
+-NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
++ENTRY * NCURSES_EXPORT_VAR(_nc_head) = 0;
++ENTRY * NCURSES_EXPORT_VAR(_nc_tail) = 0;
+
+ static void
+ enqueue(ENTRY * ep)
+--- ncurses-5.4/ncurses/tinfo/comp_scan.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/comp_scan.c
+@@ -60,19 +60,13 @@
+
+ #define iswhite(ch) (ch == ' ' || ch == '\t')
+
+-NCURSES_EXPORT_VAR(int)
+-_nc_syntax = 0; /* termcap or terminfo? */
+-NCURSES_EXPORT_VAR(long)
+-_nc_curr_file_pos = 0; /* file offset of current line */
+-NCURSES_EXPORT_VAR(long)
+-_nc_comment_start = 0; /* start of comment range before name */
+-NCURSES_EXPORT_VAR(long)
+-_nc_comment_end = 0; /* end of comment range before name */
+-NCURSES_EXPORT_VAR(long)
+-_nc_start_line = 0; /* start line of current entry */
++int NCURSES_EXPORT_VAR(_nc_syntax) = 0; /* termcap or terminfo? */
++long NCURSES_EXPORT_VAR(_nc_curr_file_pos) = 0; /* file offset of current line */
++long NCURSES_EXPORT_VAR(_nc_comment_start) = 0; /* start of comment range before name */
++long NCURSES_EXPORT_VAR(_nc_comment_end) = 0; /* end of comment range before name */
++long NCURSES_EXPORT_VAR(_nc_start_line) = 0; /* start line of current entry */
+
+-NCURSES_EXPORT_VAR(struct token)
+-_nc_curr_token =
++struct token NCURSES_EXPORT_VAR(_nc_curr_token) =
+ {
+ 0, 0, 0
+ };
+@@ -90,8 +84,7 @@
+ static char *pushname;
+
+ #if NCURSES_EXT_FUNCS
+-NCURSES_EXPORT_VAR(bool)
+-_nc_disable_period = FALSE; /* used by tic -a option */
++bool NCURSES_EXPORT_VAR(_nc_disable_period) = FALSE; /* used by tic -a option */
+ #endif
+
+ static bool end_of_stream(void);
+--- ncurses-5.4/ncurses/tinfo/lib_acs.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_acs.c
+@@ -37,8 +37,7 @@
+ MODULE_ID("$Id: lib_acs.c,v 1.25 2002/12/28 16:26:46 tom Exp $")
+
+ #if BROKEN_LINKER
+-NCURSES_EXPORT_VAR(chtype *)
+-_nc_acs_map(void)
++chtype * NCURSES_EXPORT_VAR(_nc_acs_map)(void)
+ {
+ static chtype *the_map = 0;
+ if (the_map == 0)
+@@ -46,7 +45,7 @@
+ return the_map;
+ }
+ #else
+-NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] =
++chtype NCURSES_EXPORT_VAR(acs_map[ACS_LEN]) =
+ {
+ 0
+ };
+--- ncurses-5.4/ncurses/tinfo/lib_data.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_data.c
+@@ -46,14 +46,11 @@
+ * OS/2's native linker complains if we don't initialize public data when
+ * constructing a dll (reported by J.J.G.Ripoll).
+ */
+-NCURSES_EXPORT_VAR(WINDOW *)
+-stdscr = 0;
+-NCURSES_EXPORT_VAR(WINDOW *)
+-curscr = 0;
+-NCURSES_EXPORT_VAR(WINDOW *)
+-newscr = 0;
++WINDOW * NCURSES_EXPORT_VAR(stdscr) = 0;
++WINDOW * NCURSES_EXPORT_VAR(curscr) = 0;
++WINDOW * NCURSES_EXPORT_VAR(newscr) = 0;
+
+-NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
++SCREEN * NCURSES_EXPORT_VAR(_nc_screen_chain) = 0;
+
+ /*
+ * The variable 'SP' will be defined as a function on systems that cannot link
+@@ -87,5 +84,5 @@
+ }
+
+ #else
+-NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
++SCREEN * NCURSES_EXPORT_VAR(SP) = NULL; /* Some linkers require initialized data... */
+ #endif
+--- ncurses-5.4/ncurses/trace/lib_trace.c~visibility.patch
++++ ncurses-5.4/ncurses/trace/lib_trace.c
+@@ -42,11 +42,11 @@
+
+ MODULE_ID("$Id: lib_trace.c,v 1.53 2003/11/23 00:39:30 tom Exp $")
+
+-NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
++unsigned NCURSES_EXPORT_VAR(_nc_tracing) = 0; /* always define this */
+
+ #ifdef TRACE
+-NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
+-NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
++const char * NCURSES_EXPORT_VAR(_nc_tputs_trace) = "";
++long NCURSES_EXPORT_VAR(_nc_outchars) = 0;
+
+ static FILE *tracefp = 0; /* default to writing to stderr */
+
+--- ncurses-5.4/ncurses/curses.priv.h~visibility.patch
++++ ncurses-5.4/ncurses/curses.priv.h
+@@ -498,7 +498,7 @@
+ #endif
+ };
+
+-extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
++extern SCREEN * NCURSES_EXPORT_VAR(_nc_screen_chain);
+
+ #if NCURSES_NOMACROS
+ #include <nomacros.h>
+@@ -752,9 +752,9 @@
+ extern NCURSES_EXPORT(int) _nc_retrace_int (int);
+ extern NCURSES_EXPORT(unsigned) _nc_retrace_unsigned (unsigned);
+ extern NCURSES_EXPORT(void) _nc_fifo_dump (void);
+-extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
+-extern NCURSES_EXPORT_VAR(long) _nc_outchars;
+-extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
++extern const char * NCURSES_EXPORT_VAR(_nc_tputs_trace);
++extern long NCURSES_EXPORT_VAR(_nc_outchars);
++extern unsigned NCURSES_EXPORT_VAR(_nc_tracing);
+
+ #if USE_WIDEC_SUPPORT
+ extern NCURSES_EXPORT(const char *) _nc_viswbuf2 (int, const wchar_t *);
+@@ -1055,7 +1055,7 @@
+ #endif
+
+ /* scroll indices */
+-extern NCURSES_EXPORT_VAR(int *) _nc_oldnums;
++extern int * NCURSES_EXPORT_VAR(_nc_oldnums);
+
+ #define USE_SETBUF_0 0
+
+@@ -1074,7 +1074,7 @@
+ extern NCURSES_EXPORT(void) _nc_set_screen (SCREEN *);
+ #else
+ /* current screen is private data; avoid possible linking conflicts too */
+-extern NCURSES_EXPORT_VAR(SCREEN *) SP;
++extern SCREEN * NCURSES_EXPORT_VAR(SP);
+ #define _nc_alloc_screen() ((SP = typeCalloc(SCREEN, 1)) != 0)
+ #define _nc_set_screen(sp) SP = sp
+ #endif
+@@ -1087,7 +1087,7 @@
+ #define screen_lines SP->_lines
+ #define screen_columns SP->_columns
+
+-extern NCURSES_EXPORT_VAR(int) _nc_slk_format; /* != 0 if slk_init() called */
++extern int NCURSES_EXPORT_VAR(_nc_slk_format); /* != 0 if slk_init() called */
+ extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int);
+
+ /*
+--- /dev/null
++++ ncurses-5.4/m4/cf.m4
+@@ -0,0 +1,3703 @@
++dnl***************************************************************************
++dnl Copyright (c) 1998-2003,2004 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 *
++dnl "Software"), to deal in the Software without restriction, including *
++dnl without limitation the rights to use, copy, modify, merge, publish, *
++dnl distribute, distribute with modifications, sublicense, and/or sell *
++dnl copies of the Software, and to permit persons to whom the Software is *
++dnl furnished to do so, subject to the following conditions: *
++dnl *
++dnl The above copyright notice and this permission notice shall be included *
++dnl in all copies or substantial portions of the Software. *
++dnl *
++dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++dnl *
++dnl Except as contained in this notice, the name(s) of the above copyright *
++dnl holders shall not be used in advertising or otherwise to promote the *
++dnl sale, use or other dealings in this Software without prior written *
++dnl authorization. *
++dnl***************************************************************************
++dnl
++dnl Author: Thomas E. Dickey 1995-2003
++dnl
++dnl $Id: aclocal.m4,v 1.333 2004/01/30 20:59:56 tom Exp $
++dnl Macros used in NCURSES auto-configuration script.
++dnl
++dnl See http://invisible-island.net/autoconf/ for additional information.
++dnl
++dnl ---------------------------------------------------------------------------
++dnl ---------------------------------------------------------------------------
++dnl CF_ADA_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
++dnl -------------------
++dnl Construct the list of include-options for the C programs in the Ada95
++dnl binding.
++AC_DEFUN([CF_ADA_INCLUDE_DIRS],
++[
++ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
++if test "$srcdir" != "."; then
++ ACPPFLAGS="-I\$(srcdir)/../../include $ACPPFLAGS"
++fi
++if test "$GCC" != yes; then
++ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
++elif test "$includedir" != "/usr/include"; then
++ if test "$includedir" = '${prefix}/include' ; then
++ if test $prefix != /usr ; then
++ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
++ fi
++ else
++ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
++ fi
++fi
++AC_SUBST(ACPPFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ADD_CFLAGS version: 5 updated: 2002/12/01 00:12:15
++dnl -------------
++dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
++dnl The second parameter if given makes this macro verbose.
++AC_DEFUN([CF_ADD_CFLAGS],
++[
++cf_new_cflags=
++cf_new_cppflags=
++for cf_add_cflags in $1
++do
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++done
++
++if test -n "$cf_new_cflags" ; then
++ ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++ ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
++ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
++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: 3 updated: 1997/09/06 13:40:44
++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_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_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
++dnl ------------
++dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
++dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
++dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
++dnl
++dnl Treat the configuration-variable specially here, since we're directly
++dnl substituting its value (i.e., 1/0).
++dnl
++dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
++AC_DEFUN([CF_BOOL_DECL],
++[
++AC_MSG_CHECKING(if we should include stdbool.h)
++
++AC_CACHE_VAL(cf_cv_header_stdbool_h,[
++ AC_TRY_COMPILE([],[bool foo = false],
++ [cf_cv_header_stdbool_h=0],
++ [AC_TRY_COMPILE([
++#ifndef __BEOS__
++#include <stdbool.h>
++#endif
++],[bool foo = false],
++ [cf_cv_header_stdbool_h=1],
++ [cf_cv_header_stdbool_h=0])])])
++
++if test "$cf_cv_header_stdbool_h" = 1
++then AC_MSG_RESULT(yes)
++else AC_MSG_RESULT(no)
++fi
++
++AC_MSG_CHECKING([for builtin bool type])
++
++AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
++ AC_TRY_COMPILE([
++#include <stdio.h>
++#include <sys/types.h>
++],[bool x = false],
++ [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
++ [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
++ ])
++
++if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
++then AC_MSG_RESULT(yes)
++else AC_MSG_RESULT(no)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_BOOL_SIZE version: 10 updated: 2002/02/23 20:38:31
++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.
++dnl
++dnl If the current compiler is C rather than C++, we get the bool definition
++dnl from <stdbool.h>.
++AC_DEFUN([CF_BOOL_SIZE],
++[
++AC_MSG_CHECKING([for size of bool])
++AC_CACHE_VAL(cf_cv_type_of_bool,[
++ rm -f cf_test.out
++ AC_TRY_RUN([
++#include <stdlib.h>
++#include <stdio.h>
++
++#if defined(__cplusplus)
++
++#ifdef HAVE_GXX_BUILTIN_H
++#include <g++/builtin.h>
++#elif HAVE_GPP_BUILTIN_H
++#include <gpp/builtin.h>
++#elif HAVE_BUILTIN_H
++#include <builtin.h>
++#endif
++
++#else
++
++#if $cf_cv_header_stdbool_h
++#include <stdbool.h>
++#endif
++
++#endif
++
++main()
++{
++ FILE *fp = fopen("cf_test.out", "w");
++ if (fp != 0) {
++ bool x = true;
++ if ((bool)(-x) >= 0)
++ fputs("unsigned ", fp);
++ if (sizeof(x) == sizeof(int)) fputs("int", fp);
++ else if (sizeof(x) == sizeof(char)) fputs("char", fp);
++ else if (sizeof(x) == sizeof(short))fputs("short",fp);
++ else if (sizeof(x) == sizeof(long)) fputs("long", fp);
++ fclose(fp);
++ }
++ exit(0);
++}
++ ],
++ [cf_cv_type_of_bool=`cat cf_test.out`
++ if test -z "$cf_cv_type_of_bool"; then
++ cf_cv_type_of_bool=unknown
++ fi],
++ [cf_cv_type_of_bool=unknown],
++ [cf_cv_type_of_bool=unknown])
++ ])
++ rm -f cf_test.out
++AC_MSG_RESULT($cf_cv_type_of_bool)
++if test "$cf_cv_type_of_bool" = unknown ; then
++ case .$NCURSES_BOOL in #(vi
++ .auto|.) NCURSES_BOOL=unsigned;;
++ esac
++ AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
++ cf_cv_type_of_bool=$NCURSES_BOOL
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CFG_DEFAULTS version: 6 updated: 2003/07/12 15:15:19
++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
++dnl look for:
++dnl 1. the prefix (e.g., /usr)
++dnl 2. the header files (e.g., /usr/include/ncurses)
++dnl We'll look for a previous installation of ncurses and use the same defaults.
++dnl
++dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
++dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
++dnl programs from a vendor's.
++AC_DEFUN([CF_CFG_DEFAULTS],
++[
++AC_MSG_CHECKING(for prefix)
++if test "x$prefix" = "xNONE" ; then
++ case "$cf_cv_system_name" in
++ # non-vendor systems don't have a conflict
++ openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
++ prefix=/usr
++ ;;
++ *) prefix=$ac_default_prefix
++ ;;
++ esac
++fi
++AC_MSG_RESULT($prefix)
++
++if test "x$prefix" = "xNONE" ; then
++AC_MSG_CHECKING(for default include-directory)
++test -n "$verbose" && echo 1>&AC_FD_MSG
++for cf_symbol in \
++ $includedir \
++ $includedir/ncurses \
++ $prefix/include \
++ $prefix/include/ncurses \
++ /usr/local/include \
++ /usr/local/include/ncurses \
++ /usr/include \
++ /usr/include/ncurses
++do
++ cf_dir=`eval echo $cf_symbol`
++ if test -f $cf_dir/curses.h ; then
++ if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
++ includedir="$cf_symbol"
++ test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
++ break
++ fi
++ fi
++ test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
++done
++AC_MSG_RESULT($includedir)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
++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_TRY_LINK([
++#include <stdlib.h>],[
++ char temp[128];
++ char *buf = temp;
++ char *db_array = temp;
++ cgetent(&buf, /* int *, */ &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)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_CACHE version: 9 updated: 2004/01/30 15:59:13
++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.
++dnl
++dnl If we've packaged config.guess and config.sub, run that (since it does a
++dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
++dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
++dnl which is useful in cross-compiles.
++dnl
++dnl Note: we would use $ac_config_sub, but that is one of the places where
++dnl autoconf 2.5x broke compatibility with autoconf 2.13
++AC_DEFUN([CF_CHECK_CACHE],
++[
++if test -f $srcdir/config.guess ; then
++ ifelse([$1],,[AC_CANONICAL_HOST],[$1])
++ system_name="$host_os"
++else
++ system_name="`(uname -s -r) 2>/dev/null`"
++ if test -z "$system_name" ; then
++ system_name="`(hostname) 2>/dev/null`"
++ fi
++fi
++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$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"
++test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
++
++if test ".$system_name" != ".$cf_cv_system_name" ; then
++ AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
++ AC_ERROR("Please remove config.cache and try again.")
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23
++dnl --------------
++dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
++dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
++dnl ourselves.
++dnl
++dnl $1 = the name to check
++AC_DEFUN([CF_CHECK_ERRNO],
++[
++AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
++ AC_TRY_COMPILE([
++#ifdef HAVE_STDLIB_H
++#include <stdlib.h>
++#endif
++#include <stdio.h>
++#include <sys/types.h>
++#include <errno.h> ],
++ [long x = (long) $1],
++ [cf_cv_dcl_$1=yes],
++ [cf_cv_dcl_$1=no])
++])
++
++if test "$cf_cv_dcl_$1" = no ; then
++ CF_UPPER(cf_result,decl_$1)
++ AC_DEFINE_UNQUOTED($cf_result)
++fi
++
++# It's possible (for near-UNIX clones) that the data doesn't exist
++CF_CHECK_EXTERN_DATA($1,int)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
++dnl --------------------
++dnl Check for existence of external data in the current set of libraries. If
++dnl we can modify it, it's real enough.
++dnl $1 = the name to check
++dnl $2 = its type
++AC_DEFUN([CF_CHECK_EXTERN_DATA],
++[
++AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
++ AC_TRY_LINK([
++#undef $1
++extern $2 $1;
++],
++ [$1 = 2],
++ [cf_cv_have_$1=yes],
++ [cf_cv_have_$1=no])
++])
++
++if test "$cf_cv_have_$1" = yes ; then
++ CF_UPPER(cf_result,have_$1)
++ AC_DEFINE_UNQUOTED($cf_result)
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
++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
++dnl (1999/9/11).
++AC_DEFUN([CF_CPP_PARAM_INIT],
++[
++if test -n "$CXX"; then
++AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
++ AC_LANG_SAVE
++ AC_LANG_CPLUSPLUS
++ AC_TRY_RUN([
++class TEST {
++private:
++ int value;
++public:
++ TEST(int x = 1);
++ ~TEST();
++};
++
++TEST::TEST(int x = 1) // some compilers do not like second initializer
++{
++ value = x;
++}
++void main() { }
++],
++ [cf_cv_cpp_param_init=yes],
++ [cf_cv_cpp_param_init=no],
++ [cf_cv_cpp_param_init=unknown])
++ AC_LANG_RESTORE
++])
++fi
++test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
++dnl -----------------
++dnl Check if the g++ compiler supports vscan function (not a standard feature).
++AC_DEFUN([CF_CPP_VSCAN_FUNC],
++[
++if test -n "$CXX"; then
++
++AC_LANG_SAVE
++AC_LANG_CPLUSPLUS
++AC_CHECK_HEADERS(strstream.h)
++
++AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[
++ for cf_vscan_func in strstream strstream_cast stdio
++ do
++ case $cf_vscan_func in #(vi
++ stdio) cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
++ strstream) cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
++ strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
++ esac
++ AC_TRY_LINK([
++#include <stdio.h>
++#include <stdarg.h>
++#define $cf_vscan_defs 1
++#if defined(USE_STDIO_VSCAN)
++#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
++#include <strstream.h>
++#endif
++
++int scanw(const char* fmt, ...)
++{
++ int result = -1;
++ char buf[BUFSIZ];
++
++ va_list args;
++ va_start(args, fmt);
++#if defined(USE_STDIO_VSCAN)
++ if (::vsscanf(buf, fmt, args) != -1)
++ result = 0;
++#elif defined(USE_STRSTREAM_VSCAN)
++ strstreambuf ss(buf, sizeof(buf));
++ if (ss.vscan(fmt, args) != -1)
++ result = 0;
++#elif defined(USE_STRSTREAM_VSCAN_CAST)
++ strstreambuf ss(buf, sizeof(buf));
++ if (ss.vscan(fmt, (_IO_va_list)args) != -1)
++ result = 0;
++#else
++#error case $cf_vscan_func failed
++#endif
++ va_end(args);
++ return result;
++}
++],[int tmp, foo = scanw("%d", &tmp)],
++ [cf_cv_cpp_vscan_func=$cf_vscan_func; break],
++ [cf_cv_cpp_vscan_func=no])
++ test "$cf_cv_cpp_vscan_func" != no && break
++ done
++])
++
++AC_LANG_RESTORE
++fi
++
++case $cf_cv_cpp_vscan_func in #(vi
++stdio) #(vi
++ AC_DEFINE(CPP_HAS_VSCAN_FUNC)
++ AC_DEFINE(USE_STDIO_VSCAN)
++ ;;
++strstream)
++ AC_DEFINE(CPP_HAS_VSCAN_FUNC)
++ AC_DEFINE(USE_STRSTREAM_VSCAN)
++ ;;
++strstream_cast)
++ AC_DEFINE(CPP_HAS_VSCAN_FUNC)
++ AC_DEFINE(USE_STRSTREAM_VSCAN_CAST)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
++dnl ----------
++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_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
++dnl ---------------
++AC_DEFUN([CF_DIRS_TO_MAKE],
++[
++DIRS_TO_MAKE="lib"
++for cf_item in $cf_list_models
++do
++ CF_OBJ_SUBDIR($cf_item,cf_subdir)
++ for cf_item2 in $DIRS_TO_MAKE
++ do
++ test $cf_item2 = $cf_subdir && break
++ done
++ test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
++done
++for cf_dir in $DIRS_TO_MAKE
++do
++ test ! -d $cf_dir && mkdir $cf_dir
++done
++AC_SUBST(DIRS_TO_MAKE)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
++dnl --------
++dnl Check if 'errno' is declared in <errno.h>
++AC_DEFUN([CF_ERRNO],
++[
++CF_CHECK_ERRNO(errno)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
++dnl ---------------
++dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
++dnl math.h and builtin.h, only for ncurses
++AC_DEFUN([CF_ETIP_DEFINES],
++[
++AC_MSG_CHECKING(for special defines needed for etip.h)
++cf_save_CXXFLAGS="$CXXFLAGS"
++cf_result="none"
++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"
++ test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
++ test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
++AC_TRY_COMPILE([
++#include <etip.h.in>
++],[],[
++ 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
++],[])
++done
++done
++AC_MSG_RESULT($cf_result)
++CXXFLAGS="$cf_save_CXXFLAGS"
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_MEMMOVE version: 5 updated: 2000/08/12 23:18:52
++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.
++AC_DEFUN([CF_FUNC_MEMMOVE],
++[
++AC_CHECK_FUNC(memmove,,[
++AC_CHECK_FUNC(bcopy,[
++ AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
++ AC_TRY_RUN([
++int main() {
++ static char data[] = "abcdefghijklmnopqrstuwwxyz";
++ char temp[40];
++ bcopy(data, temp, sizeof(data));
++ bcopy(temp+10, temp, 15);
++ bcopy(temp+5, temp+15, 10);
++ exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
++}
++ ],
++ [cf_cv_good_bcopy=yes],
++ [cf_cv_good_bcopy=no],
++ [cf_cv_good_bcopy=unknown])
++ ])
++ ],[cf_cv_good_bcopy=no])
++ if test "$cf_cv_good_bcopy" = yes ; then
++ AC_DEFINE(USE_OK_BCOPY)
++ else
++ AC_DEFINE(USE_MY_MEMMOVE)
++ fi
++])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_POLL version: 2 updated: 2000/02/06 01:38:04
++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 <stdio.h>
++#ifdef HAVE_POLL_H
++#include <poll.h>
++#else
++#include <sys/poll.h>
++#endif
++int main() {
++ struct pollfd myfds;
++ int ret;
++
++ myfds.fd = 0;
++ myfds.events = POLLIN;
++
++ ret = poll(&myfds, 1, 100);
++ exit(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)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
++dnl ---------------
++dnl Some old/broken variations define tcgetattr() only as a macro in
++dnl termio(s).h
++AC_DEFUN([CF_FUNC_TERMIOS],[
++AC_REQUIRE([CF_STRUCT_TERMIOS])
++AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
++AC_TRY_LINK([
++#include <sys/types.h>
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++#ifdef HAVE_TERMIOS_H
++#include <termios.h>
++#define TTY struct termios
++#else
++#ifdef HAVE_TERMIO_H
++#include <termio.h>
++#define TTY struct termio
++#endif
++#endif
++],[
++TTY foo;
++tcgetattr(1, &foo);],
++[cf_cv_have_tcgetattr=yes],
++[cf_cv_have_tcgetattr=no])])
++test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
++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
++dnl other functions.
++AC_DEFUN([CF_FUNC_VSSCANF],
++[
++AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
++AC_TRY_LINK([
++#include <stdarg.h>
++#include <stdio.h>],[
++ va_list ap;
++ vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
++AC_TRY_LINK([
++#include <stdarg.h>
++#include <stdio.h>],[
++ FILE strbuf;
++ char *str = "from";
++
++ strbuf._flag = _IOREAD;
++ strbuf._ptr = strbuf._base = (unsigned char *) str;
++ strbuf._cnt = strlen(str);
++ strbuf._file = _NFILE;
++ return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
++AC_TRY_LINK([
++#include <stdarg.h>
++#include <stdio.h>],[
++ FILE strbuf;
++ char *str = "from";
++
++ strbuf._flag = _IOREAD;
++ strbuf._ptr = strbuf._base = (unsigned char *) str;
++ strbuf._cnt = strlen(str);
++ strbuf._file = _NFILE;
++ return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
++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);;
++esac
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GCC_ATTRIBUTES version: 9 updated: 2002/12/21 19:25:52
++dnl -----------------
++dnl Test for availability of useful gcc __attribute__ directives to quiet
++dnl compiler warnings. Though useful, not all are supported -- and contrary
++dnl to documentation, unrecognized directives cause older compilers to barf.
++AC_DEFUN([CF_GCC_ATTRIBUTES],
++[
++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
++ AC_CHECKING([for $CC __attribute__ directives])
++cat > conftest.$ac_ext <<EOF
++#line __oline__ "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
++ for cf_attribute in scanf printf unused noreturn
++ do
++ CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
++ cf_directive="__attribute__(($cf_attribute))"
++ echo "checking for $CC $cf_directive" 1>&AC_FD_CC
++ case $cf_attribute in
++ scanf|printf)
++ cat >conftest.h <<EOF
++#define GCC_$CF_ATTRIBUTE 1
++EOF
++ ;;
++ *)
++ cat >conftest.h <<EOF
++#define GCC_$CF_ATTRIBUTE $cf_directive
++EOF
++ ;;
++ esac
++ if AC_TRY_EVAL(ac_compile); then
++ test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
++ cat conftest.h >>confdefs.h
++ fi
++ done
++else
++ fgrep define conftest.i >>confdefs.h
++fi
++rm -rf conftest*
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GCC_VERSION version: 3 updated: 2003/09/06 19:16:57
++dnl --------------
++dnl Find version of gcc
++AC_DEFUN([CF_GCC_VERSION],[
++AC_REQUIRE([AC_PROG_CC])
++GCC_VERSION=none
++if test "$GCC" = yes ; then
++ AC_MSG_CHECKING(version of $CC)
++ GCC_VERSION="`${CC} --version|sed -e '2,$d' -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: 15 updated: 2003/07/05 18:42:30
++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:
++dnl
++dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
++dnl -Wredundant-decls (system headers make this too noisy)
++dnl -Wtraditional (combines too many unrelated messages, only a few useful)
++dnl -Wwrite-strings (too noisy, but should review occasionally). This
++dnl is enabled for ncurses using "--enable-const".
++dnl -pedantic
++dnl
++AC_DEFUN([CF_GCC_WARNINGS],
++[
++AC_REQUIRE([CF_GCC_VERSION])
++if test "$GCC" = yes
++then
++ cat > conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
++EOF
++ AC_CHECKING([for $CC warning options])
++ cf_save_CFLAGS="$CFLAGS"
++ EXTRA_CFLAGS="-W -Wall"
++ cf_warn_CONST=""
++ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ for cf_opt in \
++ 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 AC_TRY_EVAL(ac_compile); then
++ test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
++ case $cf_opt in #(vi
++ Wcast-qual) #(vi
++ CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
++ ;;
++ Winline) #(vi
++ case $GCC_VERSION in
++ 3.3*)
++ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
++ continue;;
++ esac
++ ;;
++ esac
++ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
++ fi
++ done
++ rm -f conftest*
++ CFLAGS="$cf_save_CFLAGS"
++fi
++AC_SUBST(EXTRA_CFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GNAT_TRY_RUN version: 2 updated: 1998/07/19 00:25:18
++dnl ---------------
++dnl Verify that a test program compiles and runs with GNAT
++dnl $cf_ada_make is set to the program that compiles/links
++AC_DEFUN([CF_GNAT_TRY_RUN],
++[
++rm -f conftest*
++cat >>conftest.ads <<CF_EOF
++$1
++CF_EOF
++cat >>conftest.adb <<CF_EOF
++$2
++CF_EOF
++if ( $cf_ada_make conftest 1>&AC_FD_CC 2>&1 ) ; then
++ if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
++ifelse($3,, :,[ $3])
++ifelse($4,,,[ else
++ $4])
++ fi
++ifelse($4,,,[else
++ $4])
++fi
++rm -f conftest*
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GNAT_VERSION version: 11 updated: 2003/09/06 19:42:09
++dnl ---------------
++dnl Verify version of GNAT.
++AC_DEFUN([CF_GNAT_VERSION],
++[
++AC_MSG_CHECKING(for gnat version)
++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/ .*//'`
++AC_MSG_RESULT($cf_gnat_version)
++
++case $cf_gnat_version in
++ 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
++ cf_cv_prog_gnat_correct=yes
++ ;;
++ *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
++ cf_cv_prog_gnat_correct=no
++ ;;
++esac
++case $cf_gnat_version in
++ 3.[[1-9]]*|[[4-9]].*)
++ cf_compile_generics=generics
++ cf_generic_objects="\$(GENOBJS)"
++ ;;
++ *) cf_compile_generics=
++ cf_generic_objects=
++ ;;
++esac
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53
++dnl -------------
++dnl Check if we must define _GNU_SOURCE to get a reasonable value for
++dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
++dnl (or misfeature) of glibc2, which breaks portability of many applications,
++dnl since it is interwoven with GNU extensions.
++dnl
++dnl Well, yes we could work around it...
++AC_DEFUN([CF_GNU_SOURCE],
++[
++AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
++AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifndef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_gnu_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifdef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_gnu_source=no],
++ [cf_cv_gnu_source=yes])
++ CPPFLAGS="$cf_save"
++ ])
++])
++test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
++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
++dnl configure, but won't be able to build the c++ demo program.
++AC_DEFUN([CF_GPP_LIBRARY],
++[
++cf_cxx_library=unknown
++case $cf_cv_system_name in #(vi
++os2*) #(vi
++ cf_gpp_libname=gpp
++ ;;
++*)
++ cf_gpp_libname=g++
++ ;;
++esac
++if test "$GXX" = yes; then
++ AC_MSG_CHECKING([for lib$cf_gpp_libname])
++ cf_save="$LIBS"
++ LIBS="$LIBS -l$cf_gpp_libname"
++ AC_TRY_LINK([
++#include <$cf_gpp_libname/builtin.h>
++ ],
++ [two_arg_error_handler_t foo2 = lib_error_handler],
++ [cf_cxx_library=yes
++ CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
++ if test "$cf_gpp_libname" = cpp ; then
++ AC_DEFINE(HAVE_GPP_BUILTIN_H)
++ else
++ AC_DEFINE(HAVE_GXX_BUILTIN_H)
++ fi],
++ [AC_TRY_LINK([
++#include <builtin.h>
++ ],
++ [two_arg_error_handler_t foo2 = lib_error_handler],
++ [cf_cxx_library=yes
++ CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
++ AC_DEFINE(HAVE_BUILTIN_H)],
++ [cf_cxx_library=no])])
++ LIBS="$cf_save"
++ AC_MSG_RESULT($cf_cxx_library)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GXX_VERSION version: 3 updated: 2003/09/06 19:16:21
++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++)
++ GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
++ AC_MSG_RESULT($GXX_VERSION)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
++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
++dnl with gcc, don't append the includedir if it happens to be /usr/include,
++dnl since that usually breaks gcc's shadow-includes.
++AC_DEFUN([CF_INCLUDE_DIRS],
++[
++CPPFLAGS="-I. -I../include $CPPFLAGS"
++if test "$srcdir" != "."; then
++ CPPFLAGS="-I\$(srcdir)/../include $CPPFLAGS"
++fi
++if test "$GCC" != yes; then
++ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
++elif test "$includedir" != "/usr/include"; then
++ if test "$includedir" = '${prefix}/include' ; then
++ if test $prefix != /usr ; then
++ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
++ fi
++ else
++ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
++ fi
++fi
++AC_SUBST(CPPFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
++dnl ----------
++dnl Check if we have either a function or macro for 'isascii()'.
++AC_DEFUN([CF_ISASCII],
++[
++AC_MSG_CHECKING(for isascii)
++AC_CACHE_VAL(cf_cv_have_isascii,[
++ AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
++ [cf_cv_have_isascii=yes],
++ [cf_cv_have_isascii=no])
++])dnl
++AC_MSG_RESULT($cf_cv_have_isascii)
++test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
++dnl ----------
++dnl Check for libutf8
++AC_DEFUN([CF_LIBUTF8],
++[
++AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
++ cf_save_LIBS="$LIBS"
++ LIBS="-lutf8 $LIBS"
++AC_TRY_LINK([
++#include <libutf8.h>],[putwc(0,0);],
++ [cf_cv_libutf8=yes],
++ [cf_cv_libutf8=no])
++ LIBS="$cf_save_LIBS"
++])
++
++if test "$cf_cv_libutf8" = yes ; then
++ AC_DEFINE(HAVE_LIBUTF8_H)
++ LIBS="-lutf8 $LIBS"
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48
++dnl -------------
++dnl Compute the library-prefix for the given host system
++dnl $1 = variable to set
++AC_DEFUN([CF_LIB_PREFIX],
++[
++ case $cf_cv_system_name in
++ OS/2*) LIB_PREFIX='' ;;
++ os2*) LIB_PREFIX='' ;;
++ *) LIB_PREFIX='lib' ;;
++ esac
++ifelse($1,,,[$1=$LIB_PREFIX])
++ AC_SUBST(LIB_PREFIX)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_RULES version: 30 updated: 2004/01/10 15:50:50
++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 LIBRARIES 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
++dnl generating each library. The convention used for Linux is the simplest
++dnl one:
++dnl lib<name>.so ->
++dnl lib<name>.so.<major> ->
++dnl lib<name>.so.<maj>.<minor>
++AC_DEFUN([CF_LIB_RULES],
++[
++CF_LIB_PREFIX(cf_prefix)
++AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
++for cf_dir in $SRC_SUBDIRS
++do
++ if test -f $srcdir/$cf_dir/modules; then
++
++ IMPORT_LIB=
++ SHARED_LIB=
++ LIBS_TO_MAKE=
++ for cf_item in $CF_LIST_MODELS
++ do
++ CF_LIB_SUFFIX($cf_item,cf_suffix)
++ 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*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
++ *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
++ esac
++ ;;
++ abi)
++ case "$cf_cv_system_name" in #(vi
++ darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
++ *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
++ esac
++ ;;
++ 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
++ SHARED_LIB="../lib/cyg${cf_dir}\$(ABI_VERSION).dll"
++ IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a"
++ LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)"
++ continue
++ fi
++ fi
++ LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
++ done
++
++ if test $cf_dir = ncurses ; then
++ cf_subsets="$LIB_SUBSETS"
++ cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
++ if test "$cf_termlib" != "$cf_subsets" ; then
++ cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
++ LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
++ fi
++ else
++ cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
++ fi
++
++ sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
++ -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
++ -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" \
++ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
++
++ for cf_subset in $cf_subsets
++ do
++ 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)
++ CF_LIB_SUFFIX($cf_item,cf_suffix)
++ CF_OBJ_SUBDIR($cf_item,cf_subdir)
++
++ # These dependencies really are for development, not
++ # builds, but they are useful in porting, too.
++ cf_depend="../include/ncurses_cfg.h"
++ if test "$srcdir" = "."; then
++ cf_reldir="."
++ else
++ cf_reldir="\$(srcdir)"
++ fi
++
++ if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
++ cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
++ elif test -f $srcdir/$cf_dir/curses.priv.h; then
++ cf_depend="$cf_depend $cf_reldir/curses.priv.h"
++ fi
++
++ $AWK -f $srcdir/mk-1st.awk \
++ name=$cf_dir \
++ traces=$LIB_TRACING \
++ MODEL=$CF_ITEM \
++ model=$cf_subdir \
++ prefix=$cf_prefix \
++ suffix=$cf_suffix \
++ subset=$cf_subset \
++ ShlibVer=$cf_cv_shlib_version \
++ ShlibVerInfix=$cf_cv_shlib_version_infix \
++ DoLinks=$cf_cv_do_symlinks \
++ rmSoLocs=$cf_cv_rm_so_locs \
++ ldconfig="$LDCONFIG" \
++ overwrite=$WITH_OVERWRITE \
++ depend="$cf_depend" \
++ host="$host" \
++ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
++ for cf_subdir2 in $cf_subdirs lib
++ do
++ test $cf_subdir = $cf_subdir2 && break
++ done
++ test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
++ $AWK -f $srcdir/mk-2nd.awk \
++ name=$cf_dir \
++ traces=$LIB_TRACING \
++ MODEL=$CF_ITEM \
++ model=$cf_subdir \
++ subset=$cf_subset \
++ srcdir=$srcdir \
++ echo=$WITH_ECHO \
++ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
++ cf_subdirs="$cf_subdirs $cf_subdir"
++ done
++ done
++ fi
++
++ echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >>Makefile
++done
++
++for cf_dir in $SRC_SUBDIRS
++do
++ if test -f $cf_dir/Makefile ; then
++ case "$cf_dir" in
++ Ada95) #(vi
++ echo 'libs \' >> Makefile
++ echo 'install.libs \' >> Makefile
++ echo 'uninstall.libs ::' >> Makefile
++ echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >> Makefile
++ ;;
++ esac
++ fi
++
++ if test -f $srcdir/$cf_dir/modules; then
++ echo >> Makefile
++ if test -f $srcdir/$cf_dir/headers; then
++cat >> Makefile <<CF_EOF
++install.includes \\
++uninstall.includes \\
++CF_EOF
++ fi
++if test "$cf_dir" != "c++" ; then
++echo 'lint \' >> Makefile
++fi
++cat >> Makefile <<CF_EOF
++libs \\
++lintlib \\
++install.libs \\
++uninstall.libs \\
++install.$cf_dir \\
++uninstall.$cf_dir ::
++ cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
++CF_EOF
++ elif test -f $srcdir/$cf_dir/headers; then
++cat >> Makefile <<CF_EOF
++
++libs \\
++install.libs \\
++uninstall.libs \\
++install.includes \\
++uninstall.includes ::
++ cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
++CF_EOF
++fi
++done
++
++cat >> Makefile <<CF_EOF
++
++install.data \\
++uninstall.data ::
++$MAKE_TERMINFO cd misc && \$(MAKE) \$(CF_MFLAGS) \[$]@
++
++install.man \\
++uninstall.man ::
++ cd man && \$(MAKE) \$(CF_MFLAGS) \[$]@
++
++distclean ::
++ rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
++ rm -f headers.sh headers.sed
++ rm -rf \$(DIRS_TO_MAKE)
++CF_EOF
++
++# Special case: tack's manpage lives in its own directory.
++if test -d tack ; then
++if test -f $srcdir/$tack.h; then
++cat >> Makefile <<CF_EOF
++
++install.man \\
++uninstall.man ::
++ cd tack && \$(MAKE) \$(CF_MFLAGS) \[$]@
++CF_EOF
++fi
++fi
++
++dnl If we're installing into a subdirectory of /usr/include, etc., we should
++dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
++dnl anything, and will make it more standardized. It's awkward to decide this
++dnl at configuration because of quoting, so we'll simply make all headers
++dnl installed via a script that can do the right thing.
++
++rm -f headers.sed headers.sh
++
++dnl ( generating this script makes the makefiles a little tidier :-)
++echo creating headers.sh
++cat >headers.sh <<CF_EOF
++#! /bin/sh
++# This shell script is generated by the 'configure' script. It is invoked in a
++# subdirectory of the build tree. It generates a sed-script in the parent
++# directory that is used to adjust includes for header files that reside in a
++# subdirectory of /usr/include, etc.
++PRG=""
++while test \[$]# != 3
++do
++PRG="\$PRG \[$]1"; shift
++done
++DST=\[$]1
++REF=\[$]2
++SRC=\[$]3
++TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
++TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
++echo installing \$SRC in \$DST
++CF_EOF
++if test $WITH_CURSES_H = yes; then
++ cat >>headers.sh <<CF_EOF
++case \$DST in
++/*/include/*)
++ END=\`basename \$DST\`
++ for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
++ do
++ NAME=\`basename \$i\`
++ echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
++ done
++ ;;
++*)
++ echo "" >> \$TMPSED
++ ;;
++esac
++CF_EOF
++else
++ cat >>headers.sh <<CF_EOF
++case \$DST in
++/*/include/*)
++ END=\`basename \$DST\`
++ for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
++ do
++ NAME=\`basename \$i\`
++ if test "\$NAME" = "curses.h"
++ then
++ echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
++ NAME=ncurses.h
++ fi
++ echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
++ done
++ ;;
++*)
++ echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
++ ;;
++esac
++CF_EOF
++fi
++cat >>headers.sh <<CF_EOF
++rm -f \$TMPSRC
++sed -f \$TMPSED \$SRC > \$TMPSRC
++NAME=\`basename \$SRC\`
++CF_EOF
++if test $WITH_CURSES_H != yes; then
++ cat >>headers.sh <<CF_EOF
++test "\$NAME" = "curses.h" && NAME=ncurses.h
++CF_EOF
++fi
++cat >>headers.sh <<CF_EOF
++# Just in case someone gzip'd manpages, remove the conflicting copy.
++test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
++
++eval \$PRG \$TMPSRC \$DST/\$NAME
++rm -f \$TMPSRC \$TMPSED
++CF_EOF
++
++chmod 0755 headers.sh
++
++for cf_dir in $SRC_SUBDIRS
++do
++ if test -f $srcdir/$cf_dir/headers; then
++ cat >>$cf_dir/Makefile <<CF_EOF
++\$(DESTDIR)\$(includedir) :
++ sh \$(srcdir)/../mkinstalldirs \[$]@
++
++install \\
++install.libs \\
++install.includes :: \$(AUTO_SRC) \$(DESTDIR)\$(includedir) \\
++CF_EOF
++ j=""
++ for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
++ do
++ test -n "$j" && echo " $j \\" >>$cf_dir/Makefile
++ j=$i
++ done
++ echo " $j" >>$cf_dir/Makefile
++ for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
++ do
++ echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile
++ test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile
++ done
++
++ cat >>$cf_dir/Makefile <<CF_EOF
++
++uninstall \\
++uninstall.libs \\
++uninstall.includes ::
++CF_EOF
++ for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
++ do
++ i=`basename $i`
++ echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f $i)" >>$cf_dir/Makefile
++ test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
++ done
++ fi
++
++ if test -f $srcdir/$cf_dir/modules; then
++ if test "$cf_dir" != "c++" ; then
++ cat >>$cf_dir/Makefile <<"CF_EOF"
++depend : $(AUTO_SRC)
++ makedepend -- $(CPPFLAGS) -- $(C_SRC)
++
++# DO NOT DELETE THIS LINE -- make depend depends on it.
++CF_EOF
++ fi
++ fi
++done
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07
++dnl -------------
++dnl Compute the library file-suffix from the given model name
++dnl $1 = model name
++dnl $2 = variable to set
++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
++ libtool) $2='.la' ;;
++ normal) $2='.a' ;;
++ debug) $2='_g.a' ;;
++ profile) $2='_p.a' ;;
++ shared)
++ case $cf_cv_system_name in
++ cygwin*) $2='.dll' ;;
++ darwin*) $2='.dylib' ;;
++ hpux*)
++ case $target in
++ ia64*) $2='.so' ;;
++ *) $2='.sl' ;;
++ esac
++ ;;
++ *) $2='.so' ;;
++ esac
++ esac
++ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
++dnl -----------
++dnl Compute the string to append to -library from the given model name
++dnl $1 = model name
++dnl $2 = variable to set
++dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
++AC_DEFUN([CF_LIB_TYPE],
++[
++ case $1 in
++ libtool) $2='' ;;
++ normal) $2='' ;;
++ debug) $2='_g' ;;
++ profile) $2='_p' ;;
++ shared) $2='' ;;
++ esac
++ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LINK_DATAONLY version: 6 updated: 2003/02/02 01:41:46
++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
++dnl have to provide wrappers for global tables to ensure they're linked
++dnl properly.
++AC_DEFUN([CF_LINK_DATAONLY],
++[
++AC_MSG_CHECKING([if data-only library module links])
++AC_CACHE_VAL(cf_cv_link_dataonly,[
++ rm -f conftest.a
++ cat >conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++int testdata[[3]] = { 123, 456, 789 };
++EOF
++ if AC_TRY_EVAL(ac_compile) ; then
++ mv conftest.o data.o && \
++ ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
++ fi
++ rm -f conftest.$ac_ext data.o
++ cat >conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++int testfunc()
++{
++#if defined(NeXT)
++ exit(1); /* I'm told this linker is broken */
++#else
++ extern int testdata[[3]];
++ return testdata[[0]] == 123
++ && testdata[[1]] == 456
++ && testdata[[2]] == 789;
++#endif
++}
++EOF
++ if AC_TRY_EVAL(ac_compile); then
++ mv conftest.o func.o && \
++ ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
++ fi
++ rm -f conftest.$ac_ext func.o
++ ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
++ cf_saveLIBS="$LIBS"
++ LIBS="conftest.a $LIBS"
++ AC_TRY_RUN([
++ int main()
++ {
++ extern int testfunc();
++ exit (!testfunc());
++ }
++ ],
++ [cf_cv_link_dataonly=yes],
++ [cf_cv_link_dataonly=no],
++ [cf_cv_link_dataonly=unknown])
++ LIBS="$cf_saveLIBS"
++ ])
++AC_MSG_RESULT($cf_cv_link_dataonly)
++
++if test "$cf_cv_link_dataonly" = no ; then
++ AC_DEFINE(BROKEN_LINKER)
++ BROKEN_LINKER=1
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LINK_FUNCS version: 5 updated: 2003/02/02 01:41:46
++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 <sys/types.h>
++#include <sys/stat.h>
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#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
++ exit (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_MAKEFLAGS version: 9 updated: 2001/12/30 18:17:27
++dnl ------------
++dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make'
++dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
++dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
++dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-)
++AC_DEFUN([CF_MAKEFLAGS],
++[
++AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
++ cf_cv_makeflags=''
++ for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
++ do
++ cat >cf_makeflags.tmp <<CF_EOF
++SHELL = /bin/sh
++all :
++ @ echo '.$cf_option'
++CF_EOF
++ cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
++ case "$cf_result" in
++ .*k)
++ cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
++ case "$cf_result" in
++ .*CC=*) cf_cv_makeflags=
++ ;;
++ *) cf_cv_makeflags=$cf_option
++ ;;
++ esac
++ break
++ ;;
++ *) echo no match "$cf_result"
++ ;;
++ esac
++ done
++ rm -f cf_makeflags.tmp
++])
++
++AC_SUBST(cf_cv_makeflags)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
++dnl ------------
++dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
++dnl a monocase filesystem.
++AC_DEFUN([CF_MAKE_TAGS],[
++AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
++AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
++
++if test "$cf_cv_mixedcase" = yes ; then
++ AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
++else
++ MAKE_UPPER_TAGS=no
++fi
++
++if test "$MAKE_UPPER_TAGS" = yes ; then
++ MAKE_UPPER_TAGS=
++else
++ MAKE_UPPER_TAGS="#"
++fi
++AC_SUBST(MAKE_UPPER_TAGS)
++
++if test "$MAKE_LOWER_TAGS" = yes ; then
++ MAKE_LOWER_TAGS=
++else
++ MAKE_LOWER_TAGS="#"
++fi
++AC_SUBST(MAKE_LOWER_TAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
++dnl -----------------
++dnl Option to allow user to override automatic configuration of manpage format.
++dnl There are several special cases:
++dnl
++dnl gzip - man checks for, can display gzip'd files
++dnl compress - man checks for, can display compressed files
++dnl BSDI - files in the cat-directories are suffixed ".0"
++dnl formatted - installer should format (put files in cat-directory)
++dnl catonly - installer should only format, e.g., for a turnkey system.
++dnl
++dnl There are other configurations which this macro does not test, e.g., HPUX's
++dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
++dnl convention would not match our use).
++AC_DEFUN([CF_MANPAGE_FORMAT],
++[
++AC_REQUIRE([CF_PATHSEP])
++AC_MSG_CHECKING(format of man-pages)
++
++AC_ARG_WITH(manpage-format,
++ [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
++ optionally formatted/catonly, e.g., gzip,formatted],
++ [MANPAGE_FORMAT=$withval],
++ [MANPAGE_FORMAT=unknown])
++
++test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
++MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
++
++cf_unknown=
++
++case $MANPAGE_FORMAT in
++unknown)
++ if test -z "$MANPATH" ; then
++ MANPATH="/usr/man:/usr/share/man"
++ fi
++
++ # look for the 'date' man-page (it's most likely to be installed!)
++ MANPAGE_FORMAT=
++ cf_preform=no
++ cf_catonly=yes
++ cf_example=date
++
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
++ for cf_dir in $MANPATH; do
++ test -z "$cf_dir" && cf_dir=/usr/man
++ for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
++ do
++ cf_test=`echo $cf_name | sed -e 's/*//'`
++ if test "x$cf_test" = "x$cf_name" ; then
++
++ case "$cf_name" in
++ *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
++ *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
++ *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
++ *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
++ esac
++
++ case "$cf_name" in
++ $cf_dir/man*)
++ cf_catonly=no
++ ;;
++ $cf_dir/cat*)
++ cf_preform=yes
++ ;;
++ esac
++ break
++ fi
++
++ # if we found a match in either man* or cat*, stop looking
++ if test -n "$MANPAGE_FORMAT" ; then
++ cf_found=no
++ test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
++ test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
++ case "$cf_name" in
++ $cf_dir/cat*)
++ cf_found=yes
++ ;;
++ esac
++ test $cf_found=yes && break
++ fi
++ done
++ # only check the first directory in $MANPATH where we find manpages
++ if test -n "$MANPAGE_FORMAT" ; then
++ break
++ fi
++ done
++ # if we did not find the example, just assume it is normal
++ test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
++ IFS="$ac_save_ifs"
++ ;;
++*)
++ for cf_option in $MANPAGE_FORMAT; do
++ case $cf_option in #(vi
++ gzip|compress|BSDI|normal|formatted|catonly)
++ ;;
++ *)
++ cf_unknown="$cf_unknown $cf_option"
++ ;;
++ esac
++ done
++ ;;
++esac
++
++AC_MSG_RESULT($MANPAGE_FORMAT)
++if test -n "$cf_unknown" ; then
++ AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_RENAMES version: 6 updated: 2002/01/19 22:51:32
++dnl ------------------
++dnl The Debian people have their own naming convention for manpages. This
++dnl option lets us override the name of the file containing renaming, or
++dnl disable it altogether.
++AC_DEFUN([CF_MANPAGE_RENAMES],
++[
++AC_MSG_CHECKING(for manpage renaming)
++
++AC_ARG_WITH(manpage-renames,
++ [ --with-manpage-renames specify manpage-renaming],
++ [MANPAGE_RENAMES=$withval],
++ [MANPAGE_RENAMES=yes])
++
++case ".$MANPAGE_RENAMES" in #(vi
++.no) #(vi
++ ;;
++.|.yes)
++ # Debian 'man' program?
++ if test -f /etc/debian_version ; then
++ MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
++ else
++ MANPAGE_RENAMES=no
++ fi
++ ;;
++esac
++
++if test "$MANPAGE_RENAMES" != no ; then
++ if test -f $srcdir/man/$MANPAGE_RENAMES ; then
++ MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
++ elif test ! -f $MANPAGE_RENAMES ; then
++ AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
++ fi
++
++ test ! -d man && mkdir man
++
++ # Construct a sed-script to perform renaming within man-pages
++ if test -n "$MANPAGE_RENAMES" ; then
++ test ! -d man && mkdir man
++ sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
++ fi
++fi
++
++AC_MSG_RESULT($MANPAGE_RENAMES)
++AC_SUBST(MANPAGE_RENAMES)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
++dnl -------------------
++dnl Some people expect each tool to make all aliases for manpages in the
++dnl man-directory. This accommodates the older, less-capable implementations
++dnl of 'man', and is optional.
++AC_DEFUN([CF_MANPAGE_SYMLINKS],
++[
++AC_MSG_CHECKING(if manpage aliases will be installed)
++
++AC_ARG_WITH(manpage-aliases,
++ [ --with-manpage-aliases specify manpage-aliases using .so],
++ [MANPAGE_ALIASES=$withval],
++ [MANPAGE_ALIASES=yes])
++
++AC_MSG_RESULT($MANPAGE_ALIASES)
++
++if test "$LN_S" = "ln -s"; then
++ cf_use_symlinks=yes
++else
++ cf_use_symlinks=no
++fi
++
++MANPAGE_SYMLINKS=no
++if test "$MANPAGE_ALIASES" = yes ; then
++AC_MSG_CHECKING(if manpage symlinks should be used)
++
++AC_ARG_WITH(manpage-symlinks,
++ [ --with-manpage-symlinks specify manpage-aliases using symlinks],
++ [MANPAGE_SYMLINKS=$withval],
++ [MANPAGE_SYMLINKS=$cf_use_symlinks])
++
++if test "$$cf_use_symlinks" = no; then
++if test "$MANPAGE_SYMLINKS" = yes ; then
++ AC_MSG_WARN(cannot make symlinks, will use .so files)
++ MANPAGE_SYMLINKS=no
++fi
++fi
++
++AC_MSG_RESULT($MANPAGE_SYMLINKS)
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
++dnl --------------
++dnl This option causes manpages to be run through tbl(1) to generate tables
++dnl correctly.
++AC_DEFUN([CF_MANPAGE_TBL],
++[
++AC_MSG_CHECKING(for manpage tbl)
++
++AC_ARG_WITH(manpage-tbl,
++ [ --with-manpage-tbl specify manpage processing with tbl],
++ [MANPAGE_TBL=$withval],
++ [MANPAGE_TBL=no])
++
++AC_MSG_RESULT($MANPAGE_TBL)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MAN_PAGES version: 27 updated: 2003/12/20 20:39:45
++dnl ------------
++dnl Try to determine if the man-pages on the system are compressed, and if
++dnl so, what format is used. Use this information to construct a script that
++dnl will install man-pages.
++AC_DEFUN([CF_MAN_PAGES],
++[
++CF_MANPAGE_FORMAT
++CF_MANPAGE_RENAMES
++CF_MANPAGE_SYMLINKS
++CF_MANPAGE_TBL
++
++ if test "$prefix" = "NONE" ; then
++ cf_prefix="$ac_default_prefix"
++ else
++ cf_prefix="$prefix"
++ fi
++
++ case "$MANPAGE_FORMAT" in # (vi
++ *catonly*) # (vi
++ cf_format=yes
++ cf_inboth=no
++ ;;
++ *formatted*) # (vi
++ cf_format=yes
++ cf_inboth=yes
++ ;;
++ *)
++ cf_format=no
++ cf_inboth=no
++ ;;
++ esac
++
++test ! -d man && mkdir man
++
++cf_so_strip=
++cf_compress=
++case "$MANPAGE_FORMAT" in #(vi
++*compress*) #(vi
++ cf_so_strip="Z"
++ cf_compress=compress
++ ;;
++*gzip*) #(vi
++ cf_so_strip="gz"
++ cf_compress=gzip
++ ;;
++esac
++
++cf_edit_man=man/edit_man.sh
++
++cat >$cf_edit_man <<CF_EOF
++#! /bin/sh
++# this script is generated by the configure-script CF_MAN_PAGES macro.
++prefix="$cf_prefix"
++datadir="$datadir"
++NCURSES_OSPEED="$NCURSES_OSPEED"
++TERMINFO="$TERMINFO"
++MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
++INSTALL="$INSTALL"
++INSTALL_DATA="$INSTALL_DATA"
++transform="$program_transform_name"
++
++TMP=\${TMPDIR-/tmp}/man\$\$
++trap "rm -f \$TMP" 0 1 2 5 15
++
++form=\[$]1
++shift || exit 1
++
++verb=\[$]1
++shift || exit 1
++
++mandir=\[$]1
++shift || exit 1
++
++srcdir=\[$]1
++shift || exit 1
++
++if test "\$form" = normal ; then
++ if test "$cf_format" = yes ; then
++ if test "$cf_inboth" = no ; then
++ sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
++ exit $?
++ fi
++ fi
++ cf_subdir=\$mandir/man
++ cf_tables=$MANPAGE_TBL
++else
++ cf_subdir=\$mandir/cat
++ cf_tables=yes
++fi
++
++# process the list of source-files
++for i in \[$]* ; do
++case \$i in #(vi
++*.orig|*.rej) ;; #(vi
++*.[[0-9]]*)
++ section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
++ if test \$verb = installing ; then
++ if test ! -d \$cf_subdir\${section} ; then
++ \$MKDIRS \$cf_subdir\$section
++ fi
++ fi
++ aliases=
++ source=\`basename \$i\`
++ inalias=\$source
++ test ! -f \$inalias && inalias="\$srcdir/\$inalias"
++ if test ! -f \$inalias ; then
++ echo .. skipped \$source
++ continue
++ fi
++CF_EOF
++
++if test "$MANPAGE_ALIASES" != no ; then
++cat >>$cf_edit_man <<CF_EOF
++ aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
++CF_EOF
++fi
++
++if test "$MANPAGE_RENAMES" = no ; then
++cat >>$cf_edit_man <<CF_EOF
++ # perform program transformations for section 1 man pages
++ if test \$section = 1 ; then
++ target=\$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
++ else
++ target=\$cf_subdir\${section}/\$source
++ fi
++CF_EOF
++else
++cat >>$cf_edit_man <<CF_EOF
++ target=\`grep "^\$source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
++ if test -z "\$target" ; then
++ echo '? missing rename for '\$source
++ target="\$source"
++ fi
++ target="\$cf_subdir\${section}/\${target}"
++CF_EOF
++fi
++
++ # replace variables in man page
++ ifelse($1,,,[
++ for cf_name in $1
++ do
++cat >>$cf_edit_man <<CF_EOF
++ prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
++CF_EOF
++ done
++ ])
++cat >>$cf_edit_man <<CF_EOF
++ sed -e "s,@DATADIR@,\$datadir," \\
++ -e "s,@TERMINFO@,\$TERMINFO," \\
++ -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
++CF_EOF
++
++ ifelse($1,,,[
++ for cf_name in $1
++ do
++ cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++cat >>$cf_edit_man <<CF_EOF
++ -e "s,@$cf_NAME@,\$prog_$cf_name," \\
++CF_EOF
++ done
++ ])
++
++if test -f $MANPAGE_RENAMES ; then
++cat >>$cf_edit_man <<CF_EOF
++ < \$i | sed -f $srcdir/edit_man.sed >\$TMP
++CF_EOF
++else
++cat >>$cf_edit_man <<CF_EOF
++ < \$i >\$TMP
++CF_EOF
++fi
++
++cat >>$cf_edit_man <<CF_EOF
++if test \$cf_tables = yes ; then
++ tbl \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++fi
++CF_EOF
++
++if test $with_curses_h != yes ; then
++cat >>$cf_edit_man <<CF_EOF
++ sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++CF_EOF
++fi
++
++cat >>$cf_edit_man <<CF_EOF
++ if test \$form = format ; then
++ nroff -man \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++ fi
++CF_EOF
++
++if test -n "$cf_compress" ; then
++cat >>$cf_edit_man <<CF_EOF
++ if test \$verb = installing ; then
++ if ( $cf_compress -f \$TMP )
++ then
++ mv \$TMP.$cf_so_strip \$TMP
++ fi
++ fi
++ target="\$target.$cf_so_strip"
++CF_EOF
++fi
++
++case "$MANPAGE_FORMAT" in #(vi
++*BSDI*)
++cat >>$cf_edit_man <<CF_EOF
++ if test \$form = format ; then
++ # BSDI installs only .0 suffixes in the cat directories
++ target="\`echo \$target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
++ fi
++CF_EOF
++ ;;
++esac
++
++cat >>$cf_edit_man <<CF_EOF
++ suffix=\`basename \$target | sed -e 's%^[[^.]]*%%'\`
++ if test \$verb = installing ; then
++ echo \$verb \$target
++ \$INSTALL_DATA \$TMP \$target
++ test -n "\$aliases" && (
++ cd \$cf_subdir\${section} && (
++ source=\`echo \$target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
++ test -n "$cf_so_strip" && source=\`echo \$source |sed -e 's%\.$cf_so_strip\$%%'\`
++ target=\`basename \$target\`
++ for cf_alias in \$aliases
++ do
++ if test \$section = 1 ; then
++ cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
++ fi
++
++ if test "$MANPAGE_SYMLINKS" = yes ; then
++ if test -f \$cf_alias\${suffix} ; then
++ if ( cmp -s \$target \$cf_alias\${suffix} )
++ then
++ continue
++ fi
++ fi
++ echo .. \$verb alias \$cf_alias\${suffix}
++ rm -f \$cf_alias\${suffix}
++ $LN_S \$target \$cf_alias\${suffix}
++ elif test "\$target" != "\$cf_alias\${suffix}" ; then
++ echo ".so \$source" >\$TMP
++CF_EOF
++if test -n "$cf_compress" ; then
++cat >>$cf_edit_man <<CF_EOF
++ if test -n "$cf_so_strip" ; then
++ $cf_compress -f \$TMP
++ mv \$TMP.$cf_so_strip \$TMP
++ fi
++CF_EOF
++fi
++cat >>$cf_edit_man <<CF_EOF
++ echo .. \$verb alias \$cf_alias\${suffix}
++ rm -f \$cf_alias\${suffix}
++ \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
++ fi
++ done
++ )
++ )
++ elif test \$verb = removing ; then
++ echo \$verb \$target
++ rm -f \$target
++ test -n "\$aliases" && (
++ cd \$cf_subdir\${section} && (
++ for cf_alias in \$aliases
++ do
++ if test \$section = 1 ; then
++ cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
++ fi
++
++ echo .. \$verb alias \$cf_alias\${suffix}
++ rm -f \$cf_alias\${suffix}
++ done
++ )
++ )
++ else
++# echo ".hy 0"
++ cat \$TMP
++ fi
++ ;;
++esac
++done
++
++if test $cf_inboth = yes ; then
++if test \$form != format ; then
++ sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
++fi
++fi
++
++exit 0
++CF_EOF
++chmod 755 $cf_edit_man
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
++dnl -----------
++dnl Checks for libraries. At least one UNIX system, Apple Macintosh
++dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
++dnl AC_CHECK_LIB(m,sin), because that fails for C++.
++AC_DEFUN([CF_MATH_LIB],
++[
++AC_CACHE_CHECK(if -lm needed for math functions,
++ cf_cv_need_libm,[
++ AC_TRY_LINK([
++ #include <stdio.h>
++ #include <math.h>
++ ],
++ [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
++ [cf_cv_need_libm=no],
++ [cf_cv_need_libm=yes])])
++if test "$cf_cv_need_libm" = yes
++then
++ifelse($1,,[
++ LIBS="$LIBS -lm"
++],[$1=-lm])
++fi
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
++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.
++AC_DEFUN([CF_MIXEDCASE_FILENAMES],
++[
++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
++ cf_cv_mixedcase=no
++ ;;
++ *)
++ cf_cv_mixedcase=yes
++ ;;
++ esac
++else
++ rm -f conftest CONFTEST
++ echo test >conftest
++ if test -f CONFTEST ; then
++ cf_cv_mixedcase=no
++ else
++ cf_cv_mixedcase=yes
++ fi
++ rm -f conftest CONFTEST
++fi
++])
++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MKSTEMP version: 3 updated: 2001/11/08 20:59:59
++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).
++AC_DEFUN([CF_MKSTEMP],[
++AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
++rm -f conftest*
++AC_TRY_RUN([
++#include <sys/types.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include <sys/stat.h>
++int main()
++{
++ char *tmpl = "conftestXXXXXX";
++ char name[2][80];
++ int n;
++ int result = 0;
++ int fd;
++ struct stat sb;
++
++ umask(077);
++ for (n = 0; n < 2; ++n) {
++ strcpy(name[n], tmpl);
++ if ((fd = mkstemp(name[n])) >= 0) {
++ if (!strcmp(name[n], tmpl)
++ || stat(name[n], &sb) != 0
++ || (sb.st_mode & S_IFMT) != S_IFREG
++ || (sb.st_mode & 077) != 0) {
++ result = 1;
++ }
++ close(fd);
++ }
++ }
++ if (result == 0
++ && !strcmp(name[0], name[1]))
++ result = 1;
++ exit(result);
++}
++],[cf_cv_func_mkstemp=yes
++],[cf_cv_func_mkstemp=no
++],[AC_CHECK_FUNC(mkstemp)
++])
++])
++if test "$cf_cv_func_mkstemp" = yes ; then
++ AC_DEFINE(HAVE_MKSTEMP)
++fi
++])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
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
++dnl -------------
++dnl Compute the object-directory name from the given model name
++AC_DEFUN([CF_OBJ_SUBDIR],
++[
++ case $1 in
++ libtool) $2='obj_lo' ;;
++ normal) $2='objects' ;;
++ debug) $2='obj_g' ;;
++ profile) $2='obj_p' ;;
++ shared)
++ case $cf_cv_system_name in #(vi
++ cygwin) #(vi
++ $2='objects' ;;
++ *)
++ $2='obj_s' ;;
++ esac
++ esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
++dnl ----------
++dnl Provide a value for the $PATH and similar separator
++AC_DEFUN([CF_PATHSEP],
++[
++ case $cf_cv_system_name in
++ os2*) PATHSEP=';' ;;
++ *) PATHSEP=':' ;;
++ esac
++ifelse($1,,,[$1=$PATHSEP])
++ AC_SUBST(PATHSEP)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PATH_SYNTAX version: 9 updated: 2002/09/17 23:03:38
++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
++dnl result begins with 'NONE'. This is necessary to work around autoconf's
++dnl delayed evaluation of those symbols.
++AC_DEFUN([CF_PATH_SYNTAX],[
++case ".[$]$1" in #(vi
++.\[$]\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
++ ;;
++.\[$]{*prefix}*) #(vi
++ eval $1="[$]$1"
++ case ".[$]$1" in #(vi
++ .NONE/*)
++ $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++ esac
++ ;; #(vi
++.NONE/*)
++ $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++*)
++ ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
++dnl ------------
++dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
++dnl
++dnl $1 = symbol to test
++dnl $2 = value (if any) to use for a predefinition
++AC_DEFUN([CF_PREDEFINE],
++[
++AC_MSG_CHECKING(if we must define $1)
++AC_TRY_COMPILE([#include <sys/types.h>
++],[
++#ifndef $1
++make an error
++#endif],[cf_result=no],[cf_result=yes])
++AC_MSG_RESULT($cf_result)
++
++if test "$cf_result" = yes ; then
++ CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
++elif test "x$2" != "x" ; then
++ AC_MSG_CHECKING(checking for compatible value versus $2)
++ AC_TRY_COMPILE([#include <sys/types.h>
++],[
++#if $1-$2 < 0
++make an error
++#endif],[cf_result=yes],[cf_result=no])
++ AC_MSG_RESULT($cf_result)
++ if test "$cf_result" = no ; then
++ # perhaps we can override it - try...
++ CPPFLAGS="$CPPFLAGS -D$1=$2"
++ fi
++fi
++])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_INSTALL version: 5 updated: 2002/12/21 22:46:07
++dnl ---------------
++dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
++dnl misc/tabset install won't work properly. Usually this happens only when
++dnl using the fallback mkinstalldirs script
++AC_DEFUN([CF_PROG_INSTALL],
++[AC_PROG_INSTALL
++case $INSTALL in
++/*)
++ ;;
++*)
++ CF_DIRNAME(cf_dir,$INSTALL)
++ test -z "$cf_dir" && cf_dir=.
++ INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
++dnl ----------------
++dnl Check for ldconfig, needed to fixup shared libraries that would be built
++dnl and then used in the install.
++AC_DEFUN([CF_PROG_LDCONFIG],[
++if test "$cross_compiling" = yes ; then
++ LDCONFIG=:
++else
++case "$cf_cv_system_name" in #(vi
++freebsd*) #(vi
++ test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
++ ;;
++*) LDPATH=$PATH:/sbin:/usr/sbin
++ AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
++ ;;
++esac
++fi
++AC_SUBST(LDCONFIG)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
++dnl --------
++dnl Attempt to determine if we've got one of the flavors of regular-expression
++dnl code that we can support.
++AC_DEFUN([CF_REGEX],
++[
++AC_MSG_CHECKING([for regular-expression headers])
++AC_CACHE_VAL(cf_cv_regex,[
++AC_TRY_LINK([#include <sys/types.h>
++#include <regex.h>],[
++ regex_t *p;
++ int x = regcomp(p, "", 0);
++ int y = regexec(p, "", 0, 0, 0);
++ regfree(p);
++ ],[cf_cv_regex="regex.h"],[
++ AC_TRY_LINK([#include <regexp.h>],[
++ char *p = compile("", "", "", 0);
++ int x = step("", "");
++ ],[cf_cv_regex="regexp.h"],[
++ cf_save_LIBS="$LIBS"
++ LIBS="-lgen $LIBS"
++ AC_TRY_LINK([#include <regexpr.h>],[
++ char *p = compile("", "", "");
++ int x = step("", "");
++ ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
++])
++AC_MSG_RESULT($cf_cv_regex)
++case $cf_cv_regex in
++ regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
++ regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
++ regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SHARED_OPTS version: 30 updated: 2003/12/27 20:48:07
++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
++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.
++dnl
++dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
++dnl version when making symbolic links.
++dnl
++dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
++dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
++dnl (ex: libncurses.so.<ver>).
++dnl
++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])
++ LOCAL_LDFLAGS=
++ LOCAL_LDFLAGS2=
++ LD_SHARED_OPTS=
++ INSTALL_LIB="-m 644"
++
++ cf_cv_do_symlinks=no
++
++ AC_MSG_CHECKING(if release/abi version should be used for shared libs)
++ AC_ARG_WITH(shlib-version,
++ [ --with-shlib-version=X Specify rel or abi version for shared libs],
++ [test -z "$withval" && withval=auto
++ case $withval in #(vi
++ yes) #(vi
++ cf_cv_shlib_version=auto
++ ;;
++ rel|abi|auto|no) #(vi
++ cf_cv_shlib_version=$withval
++ ;;
++ *)
++ AC_ERROR([option value must be one of: rel, abi, auto or no])
++ ;;
++ esac
++ ],[cf_cv_shlib_version=auto])
++ AC_MSG_RESULT($cf_cv_shlib_version)
++
++ cf_cv_rm_so_locs=no
++
++ # Some less-capable ports of gcc support only -fpic
++ CC_SHARED_OPTS=
++ if test "$GCC" = yes
++ then
++ AC_MSG_CHECKING(which $CC option to use)
++ cf_save_CFLAGS="$CFLAGS"
++ for CC_SHARED_OPTS in -fPIC -fpic ''
++ do
++ CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
++ AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
++ done
++ AC_MSG_RESULT($CC_SHARED_OPTS)
++ CFLAGS="$cf_save_CFLAGS"
++ fi
++
++ cf_cv_shlib_version_infix=no
++
++ case $cf_cv_system_name in
++ beos*)
++ MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
++ ;;
++ cygwin*)
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)'
++ cf_cv_shlib_version=cygdll
++ cf_cv_shlib_version_infix=cygdll
++ ;;
++ darwin*)
++ EXTRA_CFLAGS="-no-cpp-precomp"
++ CC_SHARED_OPTS="-dynamic"
++ MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(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
++ ;;
++ hpux*)
++ # (tested with gcc 2.7.2 -- I don't have c89)
++ if test "$GCC" = yes; then
++ LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)'
++ else
++ CC_SHARED_OPTS='+Z'
++ LD_SHARED_OPTS='-Wl,+b,$(libdir)'
++ fi
++ MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $[@]'
++ # HP-UX shared libraries must be executable, and should be
++ # readonly to exploit a quirk in the memory manager.
++ INSTALL_LIB="-m 555"
++ ;;
++ irix*)
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-Wl,-rpath,"
++ EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
++ fi
++ # tested with IRIX 5.2 and 'cc'.
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $[@]` -o $[@]'
++ cf_cv_rm_so_locs=yes
++ ;;
++ linux*|gnu*|k*bsd*-gnu)
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ fi
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-Wl,-rpath,"
++ EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++ fi
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $[@]'
++ ;;
++ openbsd2*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $[@].$(ABI_VERSION)` -o $[@]'
++ ;;
++ freebsd[[45]]*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ MK_SHARED_LIB='$(LD) -Bshareable -soname=`basename $[@]` -o $[@]'
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++
++# This doesn't work - I keep getting spurious references to needing
++# libncurses.so.5.3 when ldd says it's resolved. LOCAL_LDFLAGS2 seems to be
++# no longer used anyway. And the rpath logic isn't relative - so I have to
++# add the local and install lib-directories:
++#
++# if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
++# LOCAL_LDFLAGS="-rpath `pwd`/lib"
++# LOCAL_LDFLAGS2="-rpath \$(libdir) $LOCAL_LDFLAGS"
++# cf_ld_rpath_opt="-rpath "
++# EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++# fi
++ ;;
++ openbsd*|freebsd*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ ;;
++ netbsd*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
++ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
++ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
++ MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
++ if test "$cf_cv_shlib_version" = auto; then
++ if test ! -f /usr/libexec/ld.elf_so; then
++ cf_cv_shlib_version=rel
++ fi
++ fi
++ else
++ MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
++ fi
++ ;;
++ osf*|mls+*)
++ # tested with OSF/1 V3.2 and 'cc'
++ # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
++ # link with shared libs).
++ MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`'
++ case $host_os in
++ osf4*)
++ MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
++ ;;
++ esac
++ MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ fi
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-rpath"
++ # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++ fi
++ cf_cv_rm_so_locs=yes
++ ;;
++ sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
++ # tested with osr5.0.5
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-belf -KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o [$]@'
++ if test "$cf_cv_ld_rpath" = yes ; then
++ # only way is to set LD_RUN_PATH but no switch for it
++ RUN_PATH=$libdir
++ fi
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ LINK_PROGS='LD_RUN_PATH=$(libdir)'
++ LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
++ ;;
++ sunos4*)
++ # tested with SunOS 4.1.1 and gcc 2.7.0
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -assert pure-text -o $[@]'
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ ;;
++ solaris2*)
++ # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ fi
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-R"
++ EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++ fi
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ ;;
++ sysv5uw7*|unix_sv*)
++ # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -d y -G -o [$]@'
++ ;;
++ *)
++ CC_SHARED_OPTS='unknown'
++ MK_SHARED_LIB='echo unknown'
++ ;;
++ esac
++
++ # This works if the last tokens in $MK_SHARED_LIB are the -o target.
++ case "$cf_cv_shlib_version" in #(vi
++ rel|abi)
++ case "$MK_SHARED_LIB" in #(vi
++ *'-o $[@]')
++ test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
++ ;;
++ *)
++ AC_MSG_WARN(ignored --with-shlib-version)
++ ;;
++ esac
++ ;;
++ esac
++
++ if test -n "$cf_ld_rpath_opt" ; then
++ AC_MSG_CHECKING(if we need a space after rpath option)
++ cf_save_LIBS="$LIBS"
++ LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
++ AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
++ LIBS="$cf_save_LIBS"
++ AC_MSG_RESULT($cf_rpath_space)
++ test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
++ MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
++ fi
++
++ AC_SUBST(CC_SHARED_OPTS)
++ AC_SUBST(LD_SHARED_OPTS)
++ AC_SUBST(MK_SHARED_LIB)
++ AC_SUBST(LINK_PROGS)
++ AC_SUBST(LINK_TESTS)
++ AC_SUBST(EXTRA_LDFLAGS)
++ AC_SUBST(LOCAL_LDFLAGS)
++ AC_SUBST(LOCAL_LDFLAGS2)
++ AC_SUBST(INSTALL_LIB)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
++dnl -------------
++dnl Check for definitions & structures needed for window size-changing
++dnl FIXME: check that this works with "snake" (HP-UX 10.x)
++AC_DEFUN([CF_SIZECHANGE],
++[
++AC_REQUIRE([CF_STRUCT_TERMIOS])
++AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
++ cf_cv_sizechange=unknown
++ cf_save_CPPFLAGS="$CPPFLAGS"
++
++for cf_opts in "" "NEED_PTEM_H"
++do
++
++ CPPFLAGS="$cf_save_CPPFLAGS"
++ test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
++ AC_TRY_COMPILE([#include <sys/types.h>
++#ifdef HAVE_TERMIOS_H
++#include <termios.h>
++#else
++#ifdef HAVE_TERMIO_H
++#include <termio.h>
++#endif
++#endif
++#ifdef NEED_PTEM_H
++/* This is a workaround for SCO: they neglected to define struct winsize in
++ * termios.h -- it's only in termio.h and ptem.h
++ */
++#include <sys/stream.h>
++#include <sys/ptem.h>
++#endif
++#if !defined(sun) || !defined(HAVE_TERMIOS_H)
++#include <sys/ioctl.h>
++#endif
++],[
++#ifdef TIOCGSIZE
++ struct ttysize win; /* FIXME: what system is this? */
++ int y = win.ts_lines;
++ int x = win.ts_cols;
++#else
++#ifdef TIOCGWINSZ
++ struct winsize win;
++ int y = win.ws_row;
++ int x = win.ws_col;
++#else
++ no TIOCGSIZE or TIOCGWINSZ
++#endif /* TIOCGWINSZ */
++#endif /* TIOCGSIZE */
++ ],
++ [cf_cv_sizechange=yes],
++ [cf_cv_sizechange=no])
++
++ CPPFLAGS="$cf_save_CPPFLAGS"
++ if test "$cf_cv_sizechange" = yes ; then
++ echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
++ test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
++ break
++ fi
++done
++])
++if test "$cf_cv_sizechange" != no ; then
++ AC_DEFINE(HAVE_SIZECHANGE)
++ case $cf_cv_sizechange in #(vi
++ NEED*)
++ AC_DEFINE_UNQUOTED($cf_cv_sizechange )
++ ;;
++ esac
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SRC_MODULES version: 15 updated: 2004/01/10 16:05:16
++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
++dnl use in CF_LIB_RULES.
++dnl
++dnl This uses the configured value to make the lists SRC_SUBDIRS and
++dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
++AC_DEFUN([CF_SRC_MODULES],
++[
++AC_MSG_CHECKING(for src modules)
++
++# dependencies and linker-arguments for test-programs
++TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
++if test "$DFT_LWR_MODEL" = "libtool"; then
++ TEST_ARGS="${TEST_DEPS}"
++else
++ TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
++fi
++
++# dependencies and linker-arguments for utility-programs
++test "$with_termlib" != yes && PROG_ARGS="$TEST_ARGS"
++
++cf_cv_src_modules=
++for cf_dir in $1
++do
++ if test -f $srcdir/$cf_dir/modules; then
++
++ # We may/may not have tack in the distribution, though the
++ # makefile is.
++ if test $cf_dir = tack ; then
++ if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
++ continue
++ fi
++ fi
++
++ if test -z "$cf_cv_src_modules"; then
++ cf_cv_src_modules=$cf_dir
++ else
++ cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
++ fi
++
++ # Make the ncurses_cfg.h file record the library interface files as
++ # well. These are header files that are the same name as their
++ # directory. Ncurses is the only library that does not follow
++ # that pattern.
++ if test $cf_dir = tack ; then
++ continue
++ elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
++ CF_UPPER(cf_have_include,$cf_dir)
++ AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
++ AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
++ TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
++ if test "$DFT_LWR_MODEL" = "libtool"; then
++ TEST_ARGS="${TEST_DEPS}"
++ else
++ TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
++ fi
++ fi
++ fi
++done
++AC_MSG_RESULT($cf_cv_src_modules)
++TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
++AC_SUBST(TEST_DEPS)
++AC_SUBST(TEST_ARGS)
++
++PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
++AC_SUBST(PROG_ARGS)
++
++SRC_SUBDIRS="man include"
++for cf_dir in $cf_cv_src_modules
++do
++ SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
++done
++SRC_SUBDIRS="$SRC_SUBDIRS test"
++test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
++test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
++
++ADA_SUBDIRS=
++if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
++ SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
++ ADA_SUBDIRS="gen src samples"
++fi
++
++SUB_MAKEFILES=
++for cf_dir in $SRC_SUBDIRS
++do
++ SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
++done
++
++if test -n "$ADA_SUBDIRS"; then
++ for cf_dir in $ADA_SUBDIRS
++ do
++ SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
++ done
++ AC_SUBST(ADA_SUBDIRS)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
++dnl -----------------
++dnl Check for -lstdc++, which is GNU's standard C++ library.
++AC_DEFUN([CF_STDCPP_LIBRARY],
++[
++if test -n "$GXX" ; then
++case $cf_cv_system_name in #(vi
++os2*) #(vi
++ cf_stdcpp_libname=stdcpp
++ ;;
++*)
++ cf_stdcpp_libname=stdc++
++ ;;
++esac
++AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
++ cf_save="$LIBS"
++ LIBS="$LIBS -l$cf_stdcpp_libname"
++AC_TRY_LINK([
++#include <strstream.h>],[
++char buf[80];
++strstreambuf foo(buf, sizeof(buf))
++],
++ [cf_cv_libstdcpp=yes],
++ [cf_cv_libstdcpp=no])
++ LIBS="$cf_save"
++])
++test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
++dnl --------------
++dnl Remove "-g" option from the compiler options
++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 -------------------
++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],[
++if test "$ac_cv_func_sigaction" = yes; then
++AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
++AC_TRY_COMPILE([
++#include <sys/types.h>
++#include <signal.h>],
++ [struct sigaction act],
++ [sigact_bad=no],
++ [
++AC_TRY_COMPILE([
++#define _POSIX_SOURCE
++#include <sys/types.h>
++#include <signal.h>],
++ [struct sigaction act],
++ [sigact_bad=yes
++ AC_DEFINE(SVR4_ACTION)],
++ [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 -----------------
++dnl Some machines require _POSIX_SOURCE to completely define struct termios.
++dnl If so, define SVR4_TERMIO
++AC_DEFUN([CF_STRUCT_TERMIOS],[
++AC_CHECK_HEADERS( \
++termio.h \
++termios.h \
++unistd.h \
++)
++if test "$ISC" = yes ; then
++ AC_CHECK_HEADERS( sys/termio.h )
++fi
++if test "$ac_cv_header_termios_h" = yes ; then
++ case "$CFLAGS $CPPFLAGS" in
++ *-D_POSIX_SOURCE*)
++ termios_bad=dunno ;;
++ *) termios_bad=maybe ;;
++ esac
++ if test "$termios_bad" = maybe ; then
++ AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
++ AC_TRY_COMPILE([#include <termios.h>],
++ [struct termios foo; int x = foo.c_iflag],
++ termios_bad=no, [
++ AC_TRY_COMPILE([
++#define _POSIX_SOURCE
++#include <termios.h>],
++ [struct termios foo; int x = foo.c_iflag],
++ termios_bad=unknown,
++ termios_bad=yes AC_DEFINE(SVR4_TERMIO))
++ ])
++ AC_MSG_RESULT($termios_bad)
++ fi
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SUBST version: 2 updated: 1997/09/06 23:41:28
++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))
++test -z "[$]$2" && $2=$3
++AC_MSG_RESULT([$]$2)
++AC_SUBST($2)
++cf_cv_subst_$2=[$]$2])
++$2=${cf_cv_subst_$2}
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SUBST_NCURSES_VERSION version: 7 updated: 2003/06/07 16:22:51
++dnl ------------------------
++dnl Get the version-number for use in shared-library naming, etc.
++AC_DEFUN([CF_SUBST_NCURSES_VERSION],
++[
++NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
++NCURSES_MINOR="`egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
++NCURSES_PATCH="`egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
++cf_cv_abi_version=${NCURSES_MAJOR}
++cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
++dnl Show the computed version, for logging
++cf_cv_timestamp=`date`
++AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
++dnl We need these values in the generated headers
++AC_SUBST(NCURSES_MAJOR)
++AC_SUBST(NCURSES_MINOR)
++AC_SUBST(NCURSES_PATCH)
++dnl We need these values in the generated makefiles
++AC_SUBST(cf_cv_rel_version)
++AC_SUBST(cf_cv_abi_version)
++AC_SUBST(cf_cv_builtin_bool)
++AC_SUBST(cf_cv_header_stdbool_h)
++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 ------------------
++dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
++dnl older SCO configurations.
++AC_DEFUN([CF_SYS_TIME_SELECT],
++[
++AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
++AC_CACHE_VAL(cf_cv_sys_time_select,[
++AC_TRY_COMPILE([
++#include <sys/types.h>
++#ifdef HAVE_SYS_TIME_H
++#include <sys/time.h>
++#endif
++#ifdef HAVE_SYS_SELECT_H
++#include <sys/select.h>
++#endif
++],[],[cf_cv_sys_time_select=yes],
++ [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)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_TYPEOF_CHTYPE version: 4 updated: 2000/10/04 09:18:40
++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
++dnl long, but on newer 64-bit machines, probably want an int. If we're using
++dnl wide characters, we have to have a type compatible with that, as well.
++AC_DEFUN([CF_TYPEOF_CHTYPE],
++[
++AC_REQUIRE([CF_UNSIGNED_LITERALS])
++AC_MSG_CHECKING([for type of chtype])
++AC_CACHE_VAL(cf_cv_typeof_chtype,[
++ AC_TRY_RUN([
++#ifdef USE_WIDEC_SUPPORT
++#include <stddef.h> /* we want wchar_t */
++#define WANT_BITS 39
++#else
++#define WANT_BITS 31
++#endif
++#include <stdio.h>
++int main()
++{
++ FILE *fp = fopen("cf_test.out", "w");
++ if (fp != 0) {
++ char *result = "long";
++#ifdef USE_WIDEC_SUPPORT
++ /*
++ * If wchar_t is smaller than a long, it must be an int or a
++ * short. We prefer not to use a short anyway.
++ */
++ if (sizeof(unsigned long) > sizeof(wchar_t))
++ result = "int";
++#endif
++ if (sizeof(unsigned long) > sizeof(unsigned int)) {
++ int n;
++ unsigned int x;
++ for (n = 0; n < WANT_BITS; n++) {
++ unsigned int y = (x >> n);
++ if (y != 1 || x == 0) {
++ x = 0;
++ break;
++ }
++ }
++ /*
++ * If x is nonzero, an int is big enough for the bits
++ * that we want.
++ */
++ result = (x != 0) ? "int" : "long";
++ }
++ fputs(result, fp);
++ fclose(fp);
++ }
++ exit(0);
++}
++ ],
++ [cf_cv_typeof_chtype=`cat cf_test.out`],
++ [cf_cv_typeof_chtype=long],
++ [cf_cv_typeof_chtype=long])
++ rm -f cf_test.out
++ ])
++AC_MSG_RESULT($cf_cv_typeof_chtype)
++
++AC_SUBST(cf_cv_typeof_chtype)
++AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
++
++cf_cv_1UL="1"
++test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
++test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
++AC_SUBST(cf_cv_1UL)
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
++dnl -----------------
++dnl
++AC_DEFUN([CF_TYPE_SIGACTION],
++[
++AC_MSG_CHECKING([for type sigaction_t])
++AC_CACHE_VAL(cf_cv_type_sigaction,[
++ AC_TRY_COMPILE([
++#include <signal.h>],
++ [sigaction_t x],
++ [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)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
++dnl --------------------
++dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
++dnl won't, but they're still there.
++AC_DEFUN([CF_UNSIGNED_LITERALS],
++[
++AC_MSG_CHECKING([if unsigned literals are legal])
++AC_CACHE_VAL(cf_cv_unsigned_literals,[
++ AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
++ [cf_cv_unsigned_literals=yes],
++ [cf_cv_unsigned_literals=no])
++ ])
++AC_MSG_RESULT($cf_cv_unsigned_literals)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
++dnl --------
++dnl Make an uppercase version of a variable
++dnl $1=uppercase($2)
++AC_DEFUN([CF_UPPER],
++[
++$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
++dnl ----------
++dnl Use AC_VERBOSE w/o the warnings
++AC_DEFUN([CF_VERBOSE],
++[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
++dnl -------------
++dnl Check if type wide-character type $1 is declared, and if so, which header
++dnl file is needed. The second parameter is used to set a shell variable when
++dnl the type is not found. The first parameter sets a shell variable for the
++dnl opposite sense.
++AC_DEFUN([CF_WCHAR_TYPE],
++[
++# This is needed on Tru64 5.0 to declare $1
++AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
++AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif],
++ [$1 state],
++ [cf_cv_$1=no],
++ [AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#include <wchar.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif],
++ [$1 value],
++ [cf_cv_$1=yes],
++ [cf_cv_$1=unknown])])])
++
++if test "$cf_cv_$1" = yes ; then
++ AC_DEFINE(NEED_WCHAR_H)
++ NEED_WCHAR_H=1
++fi
++
++ifelse($2,,,[
++# if we do not find $1 in either place, use substitution to provide a fallback.
++if test "$cf_cv_$1" = unknown ; then
++ $2=1
++fi
++])
++ifelse($3,,,[
++# if we find $1 in either place, use substitution to provide a fallback.
++if test "$cf_cv_$1" != unknown ; then
++ $3=1
++fi
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
++dnl -------------------
++dnl Allow library's ABI to be overridden. Generally this happens when a
++dnl packager has incremented the ABI past that used in the original package,
++dnl and wishes to keep doing this.
++dnl
++dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
++dnl symbol.
++AC_DEFUN([CF_WITH_ABI_VERSION],[
++test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
++AC_ARG_WITH(abi-version,
++[ --with-abi-version=XXX override derived ABI version],
++[AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
++ cf_cv_abi_version=$withval])
++ CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
++ifelse($1,,,[
++$1_ABI=$cf_cv_abi_version
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_DBMALLOC version: 2 updated: 2002/12/29 21:11:45
++dnl ----------------
++dnl Configure-option for dbmalloc
++AC_DEFUN([CF_WITH_DBMALLOC],[
++AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
++AC_ARG_WITH(dbmalloc,
++ [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
++ [with_dbmalloc=$withval],
++ [with_dbmalloc=no])
++AC_MSG_RESULT($with_dbmalloc)
++if test $with_dbmalloc = yes ; then
++ AC_CHECK_LIB(dbmalloc,debug_malloc)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_DMALLOC version: 2 updated: 2002/12/29 21:11:45
++dnl ---------------
++dnl Configure-option for dmalloc
++AC_DEFUN([CF_WITH_DMALLOC],[
++AC_MSG_CHECKING(if you want to link with dmalloc for testing)
++AC_ARG_WITH(dmalloc,
++ [ --with-dmalloc test: use Gray Watson's dmalloc library],
++ [with_dmalloc=$withval],
++ [with_dmalloc=no])
++AC_MSG_RESULT($with_dmalloc)
++if test $with_dmalloc = yes ; then
++ AC_CHECK_LIB(dmalloc,dmalloc_debug)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_LIBTOOL version: 9 updated: 2004/01/16 14:55:37
++dnl ---------------
++dnl Provide a configure option to incorporate libtool. Define several useful
++dnl symbols for the makefile rules.
++dnl
++dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
++dnl macros from libtool.m4 which is in the aclocal directory of automake.
++dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
++dnl But that still does not work properly since the macro is expanded outside
++dnl the CF_WITH_LIBTOOL macro:
++dnl
++dnl #!/bin/sh
++dnl ACLOCAL=`aclocal --print-ac-dir`
++dnl if test -z "$ACLOCAL" ; then
++dnl echo cannot find aclocal directory
++dnl exit 1
++dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
++dnl echo cannot find libtool.m4 file
++dnl exit 1
++dnl fi
++dnl
++dnl LOCAL=aclocal.m4
++dnl ORIG=aclocal.m4.orig
++dnl
++dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
++dnl rm -f $ORIG
++dnl mv $LOCAL $ORIG
++dnl
++dnl # sed the LIBTOOL= assignment to omit the current directory?
++dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
++dnl cat $ORIG >>$LOCAL
++dnl
++dnl autoconf-257 $*
++dnl
++AC_DEFUN([CF_WITH_LIBTOOL],
++[
++ifdef([AC_PROG_LIBTOOL],,[
++LIBTOOL=
++])
++# common library maintenance symbols that are convenient for libtool scripts:
++LIB_CREATE='$(AR) -cr'
++LIB_OBJECT='$(OBJECTS)'
++LIB_SUFFIX=.a
++LIB_PREP="$RANLIB"
++
++# symbols used to prop libtool up to enable it to determine what it should be
++# doing:
++LIB_CLEAN=
++LIB_COMPILE=
++LIB_LINK=
++LIB_INSTALL=
++LIB_UNINSTALL=
++
++AC_MSG_CHECKING(if you want to build libraries with libtool)
++AC_ARG_WITH(libtool,
++ [ --with-libtool generate libraries with libtool],
++ [with_libtool=$withval],
++ [with_libtool=no])
++AC_MSG_RESULT($with_libtool)
++if test "$with_libtool" != "no"; then
++ifdef([AC_PROG_LIBTOOL],[
++ # missing_content_AC_PROG_LIBTOOL{{
++ AC_PROG_LIBTOOL
++ # missing_content_AC_PROG_LIBTOOL}}
++],[
++ if test "$with_libtool" != "yes" ; then
++ CF_PATH_SYNTAX(with_libtool)
++ LIBTOOL=$with_libtool
++ else
++ AC_PATH_PROG(LIBTOOL,libtool)
++ fi
++ if test -z "$LIBTOOL" ; then
++ AC_MSG_ERROR(Cannot find libtool)
++ fi
++])dnl
++ LIB_CREATE='$(LIBTOOL) --mode=link $(CC) -rpath $(DESTDIR)$(libdir) -version-info `cut -f1 $(srcdir)/VERSION` -o'
++ LIB_OBJECT='$(OBJECTS:.o=.lo)'
++ LIB_SUFFIX=.la
++ LIB_CLEAN='$(LIBTOOL) --mode=clean'
++ LIB_COMPILE='$(LIBTOOL) --mode=compile'
++ LIB_LINK='$(LIBTOOL) --mode=link'
++ LIB_INSTALL='$(LIBTOOL) --mode=install'
++ 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 '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 libtool)
++ fi
++
++ # special hack to add --tag option for C++ compiler
++ case $cf_cv_libtool_version in
++ 1.[[5-9]]*|[[2-9]]*)
++ LIBTOOL_CXX="$LIBTOOL --tag=CXX"
++ ;;
++ *)
++ LIBTOOL_CXX="$LIBTOOL"
++ ;;
++ esac
++else
++ LIBTOOL=""
++ LIBTOOL_CXX=""
++fi
++
++test -z "$LIBTOOL" && ECHO_LT=
++
++AC_SUBST(LIBTOOL)
++AC_SUBST(LIBTOOL_CXX)
++
++AC_SUBST(LIB_CREATE)
++AC_SUBST(LIB_OBJECT)
++AC_SUBST(LIB_SUFFIX)
++AC_SUBST(LIB_PREP)
++
++AC_SUBST(LIB_CLEAN)
++AC_SUBST(LIB_COMPILE)
++AC_SUBST(LIB_LINK)
++AC_SUBST(LIB_INSTALL)
++AC_SUBST(LIB_UNINSTALL)
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATH version: 6 updated: 1998/10/11 00:40:17
++dnl ------------
++dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
++dnl defaulting to yes/no.
++dnl
++dnl $1 = option name
++dnl $2 = help-text
++dnl $3 = environment variable to set
++dnl $4 = default value, shown in the help-message, must be a constant
++dnl $5 = default value, if it's an expression & cannot be in the help-message
++dnl
++AC_DEFUN([CF_WITH_PATH],
++[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
++ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
++CF_PATH_SYNTAX(withval)
++eval $3="$withval"
++AC_SUBST($3)dnl
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
++dnl ----------------
++dnl Process an option specifying a list of colon-separated paths.
++dnl
++dnl $1 = option name
++dnl $2 = help-text
++dnl $3 = environment variable to set
++dnl $4 = default value, shown in the help-message, must be a constant
++dnl $5 = default value, if it's an expression & cannot be in the help-message
++dnl $6 = flag to tell if we want to define or substitute
++dnl
++AC_DEFUN([CF_WITH_PATHLIST],[
++AC_REQUIRE([CF_PATHSEP])
++AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
++ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
++
++IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
++cf_dst_path=
++for cf_src_path in $withval
++do
++ CF_PATH_SYNTAX(cf_src_path)
++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
++ cf_dst_path="${cf_dst_path}${cf_src_path}"
++done
++IFS="$ac_save_ifs"
++
++ifelse($6,define,[
++# Strip single quotes from the value, e.g., when it was supplied as a literal
++# for $4 or $5.
++case $cf_dst_path in #(vi
++\'*)
++ cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
++ ;;
++esac
++cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
++])
++
++eval '$3="$cf_dst_path"'
++AC_SUBST($3)dnl
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
++dnl -------------------
++dnl Allow library's release-version to be overridden. Generally this happens when a
++dnl packager has incremented the release-version past that used in the original package,
++dnl and wishes to keep doing this.
++dnl
++dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
++dnl and {package}_MINOR symbols
++dnl symbol.
++AC_DEFUN([CF_WITH_REL_VERSION],[
++test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
++AC_ARG_WITH(rel-version,
++[ --with-rel-version=XXX override derived release version],
++[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
++ cf_cv_rel_version=$withval])
++ifelse($1,,[
++ CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
++],[
++ $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
++ $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
++ CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
++ CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
++dnl ----------------
++dnl If we can compile with sysmouse, make it available unless it is not wanted.
++AC_DEFUN([CF_WITH_SYSMOUSE],[
++# not everyone has "test -c"
++if test -c /dev/sysmouse 2>/dev/null ; then
++AC_MSG_CHECKING(if you want to use sysmouse)
++AC_ARG_WITH(sysmouse,
++ [ --with-sysmouse use sysmouse (FreeBSD console)],
++ [cf_with_sysmouse=$withval],
++ [cf_with_sysmouse=maybe])
++ if test "$cf_with_sysmouse" != no ; then
++ AC_TRY_COMPILE([
++#include <osreldate.h>
++#if (__FreeBSD_version >= 400017)
++#include <sys/consio.h>
++#include <sys/fbio.h>
++#else
++#include <machine/console.h>
++#endif
++],[
++ struct mouse_info the_mouse;
++ ioctl(0, CONS_MOUSECTL, &the_mouse);
++],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
++ fi
++AC_MSG_RESULT($cf_with_sysmouse)
++test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_XOPEN_SOURCE version: 11 updated: 2004/01/26 20:58:41
++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.
++AC_DEFUN([CF_XOPEN_SOURCE],[
++case $host_os in #(vi
++freebsd*) #(vi
++ CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
++ ;;
++hpux*) #(vi
++ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
++ ;;
++irix6.*) #(vi
++ CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
++ ;;
++linux*) #(vi
++ CF_GNU_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
++ CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
++ ;;
++sco*) #(vi
++ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
++ ;;
++solaris*) #(vi
++ CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
++ ;;
++*)
++ 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=500"
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifdef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_cv_xopen_source=yes])
++ CPPFLAGS="$cf_save"
++ ])
++])
++test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
++
++ # FreeBSD 5.x headers demand this...
++ AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_xopen_source,[
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifndef _POSIX_C_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifdef _POSIX_C_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_cv_xopen_source=yes])
++ CPPFLAGS="$cf_save"
++ ])
++])
++test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
++ ;;
++esac
++])
+--- /dev/null
++++ ncurses-5.4/m4/templates.m4
+@@ -0,0 +1,78 @@
++AH_TEMPLATE([BROKEN_LINKER], [too lazy to enter descriptions])
++AH_TEMPLATE([BSD_TPUTS], [too lazy to enter descriptions])
++AH_TEMPLATE([CC_HAS_INLINE_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([CC_HAS_PROTOS], [too lazy to enter descriptions])
++AH_TEMPLATE([CPP_HAS_PARAM_INIT], [too lazy to enter descriptions])
++AH_TEMPLATE([CPP_HAS_VSCAN_FUNC], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_BIG_CORE], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_BSD_CGETENT], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_BUILTIN_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_CURSES_VERSION], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_GETTIMEOFDAY], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_GPP_BUILTIN_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_GXX_BUILTIN_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_HAS_KEY], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_ISASCII], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_LIBGPM], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_LIBUTF8_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_MKSTEMP], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_NC_ALLOC_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_REGEXPR_H_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_REGEXP_H_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_REGEX_H_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_RESIZETERM], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_RESIZE_TERM], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_SIZECHANGE], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_SLK_COLOR], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_SYS_TIME_SELECT], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_TCGETATTR], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_TYPE_SIGACTION], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_USE_DEFAULT_COLORS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_VFSCANF], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_VSSCANF], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_WORKING_POLL], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_WRESIZE], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE__DOSCAN], [too lazy to enter descriptions])
++AH_TEMPLATE([MIXEDCASE_FILENAMES], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_EXPANDED], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_EXT_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_NOMACROS], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_NO_PADDING], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_PATHSEP], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_VERSION_STRING], [too lazy to enter descriptions])
++AH_TEMPLATE([NDEBUG], [too lazy to enter descriptions])
++AH_TEMPLATE([NEED_WCHAR_H], [too lazy to enter descriptions])
++AH_TEMPLATE([NO_LEAKS], [too lazy to enter descriptions])
++AH_TEMPLATE([PROG_EXT], [too lazy to enter descriptions])
++AH_TEMPLATE([PURE_TERMINFO], [too lazy to enter descriptions])
++AH_TEMPLATE([SVR4_ACTION], [too lazy to enter descriptions])
++AH_TEMPLATE([SVR4_TERMIO], [too lazy to enter descriptions])
++AH_TEMPLATE([SYSTEM_NAME], [too lazy to enter descriptions])
++AH_TEMPLATE([TERMINFO], [too lazy to enter descriptions])
++AH_TEMPLATE([TERMINFO_DIRS], [too lazy to enter descriptions])
++AH_TEMPLATE([TERMPATH], [too lazy to enter descriptions])
++AH_TEMPLATE([TYPEOF_CHTYPE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_ASSUMED_COLOR], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_COLORFGBG], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_DATABASE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_GETCAP], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_GETCAP_CACHE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_HARD_TABS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_HASHMAP], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_HOME_TERMINFO], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_LINKS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_MY_MEMMOVE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_OK_BCOPY], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_RCS_IDS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_ROOT_ENVIRON], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SAFE_SPRINTF], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SCROLL_HINTS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SIGWINCH], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_STDIO_VSCAN], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_STRSTREAM_VSCAN], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_STRSTREAM_VSCAN_CAST], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SYMLINKS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SYSMOUSE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_TERMCAP], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_WIDEC_SUPPORT], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_XMC_SUPPORT], [too lazy to enter descriptions])
diff --git a/recipes/ncurses/ncurses_5.4.bb b/recipes/ncurses/ncurses_5.4.bb
new file mode 100644
index 0000000000..56076140fa
--- /dev/null
+++ b/recipes/ncurses/ncurses_5.4.bb
@@ -0,0 +1,10 @@
+PR = "r18"
+
+SRC_URI = "${GNU_MIRROR}/ncurses/ncurses-${PV}.tar.gz \
+ file://makefile_tweak.patch;patch=1 \
+ file://visibility.patch;patch=1"
+S = "${WORKDIR}/ncurses-${PV}"
+
+require ncurses.inc
+
+LEAD_SONAME = "libncurses.so.5"